我目前正在做一个春装项目。我正在为一个类编写一个JUnit 5测试,如下所示,
class TheClassUnderTest {
public String methodToTest() {
Map<Integer, Object> collection = SomeOtherClass.someStaticField;
/*
Some processing logic
*/
}
}
我想知道是否有一种方法可以模拟“SomeOtherClass.someStaticField”的用法,这样我就可以测试我的类“TheClassUnderTest”了。我也用Mockito,所以任何用Mockito的回答也欢迎
Mockito从Mockito 3.4.0开始增加了对静态方法移动的支持,在此之前,您可以使用powerMockito来实现这一点。
话虽如此,你要问的是。mockito不支持模拟静态字段,实际上mockito根本不支持模拟类字段,只支持方法。
我建议用某种方法包装静态变量,最好使其是非静态的。通常避免静态方法,因为依赖于另一个类的静态方法的类与它强烈耦合,这对TDD来说是不好的做法。
我的处境:
我有一堂这样的课: 我需要使用EasyMock模拟服务<代码>EasyMock。createMock()后跟replay()不起作用。P、 S:这是其他开发人员编写的遗留代码,我们不能在这里更改代码。
我需要使用mockito测试handleIn()方法。 但是,代码需要调用这个遗留代码util.getContextPDO,它是一个静态方法。 注意,在测试环境中,这个util.getContextPDO总是返回异常,我打算通过始终返回一个虚拟IPDO来绕过这个util.getContextPDO()。 最初,我认为这可以通过使用类“MyClass”的spy()来实现,这样我就可以模拟getIPD
我的测试用例是: 当我调用时,实际上不会调用此方法。如何在side中模拟方法的结果?
在安装到AEM 5.6.1实例之前,我正在使用maven构建和测试我的代码。我已经编写了单元测试,这些测试使用wcm的实现从aem模拟中获益。io和其他需要使用powermockito模拟静态方法的单元测试。 以下是我对aem上下文、sling Mock和powermock的maven依赖关系。 在我的课堂上,我正在为aem上下文设置规则,并准备一些用于模拟的静态类: 当我通过命令行运行mvn测试
我有一个这样的方法。 > 如果我模拟记录器,是否必须将方法更改为post(字符串json,记录器记录器)?否则,如何使此模拟与该方法交互?