我是开发新手,尤其是单元测试新手。 我想我的要求很简单,但我很想知道其他人对此的想法。
假设我有两个这样的类(class) -
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());
}
我看到模拟没有生效并且断言失败。 有没有办法模拟我要测试的类的成员变量。 ?
最佳答案
您需要提供一种访问成员变量的方法,以便您可以传入模拟(最常见的方法是设置方法或带参数的构造函数)。
如果您的代码未提供执行此操作的方法,则它被错误地考虑为 TDD(测试驱动开发)。
关于java - 使用 Mockito 模拟类的成员变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8995540/