使用Mockito模拟类的成员变量
我是开发的新手,尤其是单元测试的新手。我想我的要求很简单,但是我很想知道其他人对此的想法。
假设我有两个这样的类-
public class First { Second second ;
public First(){
second = new Second();
}
public String doSecond(){
return second.doSecond();
}
}
class Second {
public String doSecond(){
return "Do Something";
}
}
假设我正在编写单元测试到测试First.doSecond()
方法。但是,假设我想像这样模拟Second.doSecond()
课程。我正在使用Mockito来做到这一点。
public void testFirst(){ Second sec = mock(Second.class);
when(sec.doSecond()).thenReturn("Stubbed Second");
First first = new First();
assertEquals("Stubbed Second", first.doSecond());
}
我看到模拟未生效,并且断言失败。没有办法模拟我要测试的类的成员变量。?
回答:
您需要提供一种访问成员变量的方式,以便您可以进行模拟传递(最常见的方式是使用参数的setter方法或构造函数)。
如果您的代码没有提供执行此操作的方法,则TDD(测试驱动开发)会将其错误地考虑在内。
以上是 使用Mockito模拟类的成员变量 的全部内容, 来源链接: utcz.com/qa/430080.html