我正在尝试了解各种模拟库的来龙去脉,并且PowerMock(特别是EasyMock扩展名)在列表的后面。我正在尝试模拟构造函数,并且在尝试复制它们时提供的示例没有相同的响应。据我所知,它永远不会嘲笑构造函数,只会像正常一样继续进行。
这是测试类:
@RunWith(PowerMockRunner.class)
@PrepareForTest({Writer.class})
public class FaultInjectionSituationTest {
@Test
public void testActionFail() throws Exception {
FaultInjectionSituation fis = new FaultInjectionSituation();
PowerMock.expectNew(Writer.class, "test")
.andThrow(new IOException("thrown from mock"));
PowerMock.replay(Writer.class);
System.out.println(fis.action());
PowerMock.verify(Writer.class);
}
}
我尝试用EasyMock.isA(String.class)替换“测试”,但结果相同。
这是FaultInjectionSituation:
public class FaultInjectionSituation {
public String action(){
Writer w;
try {
w = new Writer("test");
} catch (IOException e) {
System.out.println("thrown: " + e.getMessage());
return e.getLocalizedMessage();
}
return "returned without throw";
}
}
“作家”只不过是一个类的外壳:
public class Writer {
public Writer(String s) throws IOException {
}
public Writer() throws IOException{
}
}
运行测试时,它会打印出“不抛出异常返回”,表明从未抛出异常。
您还需要准备调用构造函数的类,因此PowerMock知道期望模拟构造函数的html" target="_blank">调用。尝试使用以下命令更新代码:
@RunWith(PowerMockRunner.class)
@PrepareForTest({Writer.class, FaultInjectionSituation.class})
public class FaultInjectionSituationTest {
// as before
}
我想模拟Date对象的构造函数。但它并没有像我预期的那样工作<假如我有这样的服务。 我写了下面的测试 结果是: 组织。opentest4j。断言失败错误: 预计时间:2020年2月1日星期六00:00:00 CST实际时间:2022年5月9日星期一18:35:05 CST mock之后,服务将返回mockDate对象。但事实并非如此。有趣的是,如果我在测试中而不是在服务中调用新日期,我会得到正确的
例如,我有一个这样的课; 我要做的是为模拟的构造函数编写单元测试。 如果是静态的,那么这将很容易,因为我可以使用然后调用构造函数。 有人知道有什么办法吗?
我提到了这个答案,我该如何模拟java。时间本地日期。now()关于如何模拟我的LocalDateTime。now()调用。我基本上遵循了所有步骤,但只使用了LocalDateTime而不是LocalDate。 我的代码的功能是这样的,它应该只在一小时的第15或45分钟运行。因此,我将LOCAL\u DATE\u TIME静态变量设置为: 然后在我的@Before测试方法中,我有以下内容: 这是2
我有一个groovy函数,它执行一些日期操作。返回12个月前的日期。该日期被编码并存储到变量中。 片段: 上述代码与JSR223采样器配合使用效果良好。此外,变量名及其值将显示在调试采样器中。 但是,当我将此代码与GET HTTP请求一起使用时。该值不会被替换。 请求: 除groovy部分外,所有值都被正确替换。我错过了什么吗。调试采样器不显示名为Policy_ExpiryDate的变量。
运行jUnit时的异常 我想测试这个类,下面是测试方法 运行junit会产生以下异常
我正在解决反向字符串问题。我想知道为什么交换2 char的帮助函数在我的代码中不起作用。但如果我在while循环中编写交换代码,它就可以工作。