对于 Shiro 测试中的类型,方法 expect(boolean) 未定义
Posted
技术标签:
【中文标题】对于 Shiro 测试中的类型,方法 expect(boolean) 未定义【英文标题】:The method expect(boolean) is undefined for the type in Shiro test 【发布时间】:2021-12-20 06:47:29 【问题描述】:我正在使用 Java 进行第一次测试,并且我有一个 Shiro 安全...我按照教程 (https://shiro.apache.org/testing.html) 但说:
(此示例使用 EasyMock,但 Mockito 也同样适用):
Subject subjectUnderTest = createNiceMock(Subject.class);
expect(subjectUnderTest.isAuthenticated()).andReturn(true);
因为我使用 Mockito 我实现了
Subject mockSubject = mock(Subject.class);
expect(subjectUnderTest.isAuthenticated()).andReturn(true);
但是当我这样做时会出现这个错误
AdminControllerTest 类型的方法 expect(boolean) 未定义
并且不要给我导入它的可能性。我不知道expect 是否是EasyMock 特有的,如果是的话,我必须在Mockito 中使用什么。
我在这里搜索并看到更多的人这样做,并且总是推荐使用这个期望
How to mock a shirosession?
【问题讨论】:
请向我们展示您对expect
的导入。你有吗?
谢谢@Lesiak,但这是问题所在......我没有任何导入,Eclipse 不建议我可以在哪里导入:-(
如果您有createNiceMock
的静态导入,为什么不尝试为expect
添加一个。它们来自同一个班级EasyMock
,您似乎不太可能可以导入一个但不能导入另一个
再次感谢...对不起...我不使用 EasyMock 但 Mockito(我编辑问题),如果我尝试导入说:导入 org.mockito。 Mockito.expect 无法解决
见***.com/questions/14392148/…
【参考方案1】:
如果我们看一下这个代码示例......
Subject mockSubject = mock(Subject.class);
expect(subjectUnderTest.isAuthenticated()).andReturn(true);
我们可以看到...
-
您正在使用
mockito
语法进行模拟。
您正在使用easyMock
语法来配置模拟。它甚至不在依赖列表中,因此找不到此方法。
解决方法是使用mockito语法来配置mock。
Subject mockSubject = mock(Subject.class);
when(mockSubject.isAuthenticated()).thenReturn(true);
这将使一切按预期工作,当调用isAuthenticated()
方法时,您的Subject
将返回true
。
如果你想升级你的 mockito 游戏,试试这个 resource,它带有工作 github 代码示例。
【讨论】:
以上是关于对于 Shiro 测试中的类型,方法 expect(boolean) 未定义的主要内容,如果未能解决你的问题,请参考以下文章