Mockito NotaMockException
2022-09-01 11:42:19
我遇到了Mockito junit测试的问题。我是新手,对我面临的问题有点困惑。任何这方面的帮助将不胜感激。
class Activity{
public void firstMethod(){
String str = secondMethod();
}
public String secondMethod(){
String str = null;
/* some Code */
return str;
}
}
获取异常 :
*org.mockito.exceptions.misusing.NotAMockException:
Argument passed to when() is not a mock!*
在下面的代码中
class ActivityTest(){
Activity act;
@Before
public void setup(){
act = new Activity();
}
@Test
public void testFirstMethod(){
Mockito.doReturn(Mockito.anyString()).when(act).secondMethod();
act.firstMethod();
verify(act).secondMethod();
}
}
我知道活动不是模拟的,但我不确定是否有办法解决这个问题,就像同一类中的方法一样。我需要编写规则,因为我已经完成了它的单元测试。包含的定义具有外部依赖关系。我应该嘲笑中存在的外部依赖关系并为它们编写规则而不是规则吗?secondMethod()
secondMethod()
secondMethod()
secondMethod()
secondMethod()
我发现这篇文章: Mockito Spy'ing on the object be unit tested 但是将第二个Method()分成不同的类是没有意义的。我的方法与此类相关。创建一个不同的测试类对我来说似乎并不合适。即使使用spy()嘲笑实际的类也不是最正确的方法,正如帖子中已经解释的那样。
我不认为我应该创建一个Active类的模拟,因为这是我正在测试的类。我非常感谢对此的帮助和见解。