使用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

回到顶部