我想模拟Date对象的构造函数。但它并没有像我预期的那样工作<假如我有这样的服务。
public class TestService {
public Date getNewDate(){
return new Date();
}
}
我写了下面的测试
@Test
void test3() throws Exception {
TestService testService=new TestService();
Date mockDate = new Date(120, 1, 1);
PowerMockito.mock(Date.class);
PowerMockito.whenNew(Date.class).withNoArguments().thenReturn(mockDate);
Assertions.assertEquals(mockDate,new Date()); //succeed
Assertions.assertEquals(mockDate,testService.getNewDate()); //failed
}
结果是:
组织。opentest4j。断言失败错误:
预计时间:2020年2月1日星期六00:00:00 CST实际时间:2022年5月9日星期一18:35:05 CST
mock之后,服务将返回mockDate对象。但事实并非如此。有趣的是,如果我在测试中而不是在服务中调用新日期,我会得到正确的结果<为什么会这样?
使用PowerMockito时,必须向测试类添加PrepareForTest注释。whenNew(新建)。
@RunWith(PowerMockRunner.class)
@PrepareForTest(TestService.class)
public class YourTest {
@Test
void test3() throws Exception {
// ...
}
}
您可以在此处找到有关@准备测试
的更多信息:https://stackoverflow.com/a/56430390/5485454
我正在使用spring Roo并希望访问Controller类中的一个bean,该类在ApplicationContext.xml中具有以下配置: 配置类本身是: 在我的Controller中,我认为一个简单的Autowired注释应该可以完成这项工作 在启动过程中,spring在setSkipWeeks方法中打印消息。不幸的是,每当我在控制器中调用config.getSkipWeeks()时,它
当我运行以下程序时,它只打印 然而,从Java 8的equalsIgnoreCase文档中我们发现: 如果以下至少一项为真,则两个字符c1和c2被视为相同的忽略情况: •对每个字符应用java.lang.character.ToUpperCase(char)方法会产生相同的结果 所以我的问题是为什么这个程序不打印 在这两种操作中,都使用了大写字符。
我试图使用来传输我根据前面的问题设置的自定义标头。 我在文件中读到... 我的属性包括:
我正在和selenium一起工作,刮一些数据。 有一个按钮在页面上,我正在点击说“Custom_Cols”。这个按钮为我打开了一个窗口,我可以在那里选择我的列。 我的问题是为什么新窗口上的元素不可见,即使我正在等待元素的可见。补充一下,我已经尝试增加延迟时间,但我还是会偶尔出现这个错误。 我的密码在这里
我正在使用Grails 2.0.1中的springsecurity插件。我的角色层次结构和其他s2属性如下所示。
我有一个问题jsPlumb的deleteEndpoint函数。 我想删除没有任何连接的endpoint。我希望在“连接”时触发此操作,但我认为可能存在一些问题。 但是我把代码移到了“dblclick”,我发现了同样的问题。标记为删除的一个节点被删除,但随后系统中的每个endpoint都被冻结在原地——一旦其元素被拖动,就与该元素断开连接。我不确定是什么原因造成的:以下是相关代码和一些屏幕截图。。。
我知道我做错了什么。但我找不到这里有什么问题。请帮助我正确理解这一点。