![](/img/trans.png)
[英]Mockito rest template is always null for mocked object
[英]Why does mockito mocked object in Cucumber stepdef file come as Null?
我正在使用 mockito 和 cucumber。我在 step def 中有一个代码,如下所示:
@Mock
private SystemsConfig systemsConfig;
@And("The login to mySytem is executed successfully")
public void loginToMySystem() {
Mockito.when(systemsConfig.getUrl()).thenReturn(MyUnitMocks.baseUrl);
}
调试时,我看到 systemsConfig 显示为 null,尽管我已经嘲笑了它。 使用 junit 同样完美。为什么会这样? 如何使用 mockito 和 cucumber 实现此目的?
它不起作用,因为没有魔法这样的东西。 必须有某种东西将 Mockito 连接到 JUnit,以便它知道何时创建模拟。
当您使用 JUnit 时,您还使用了 Mockito Junit 扩展、Mockito JUnit 运行器、Spring 之类的框架或其他有效调用的框架:
MockitoAnnotations.initMocks(this);
Cucumber 没有这样的扩展名。所以当使用 Cucumber 时,你必须在 before hook 中执行此操作。
@Before
public void setup() {
MockitoAnnotations.initMocks(this);
}
您可以在@Mock
的 Java 文档中找到更多更新说明。
https://javadoc.io/doc/org.mockito/mockito-core/latest/org/mockito/Mock.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.