java - 在andReturn中使用expect的方法参数

标签 java junit easymock

Collection<T_SI_IDABAREME> tSiIdabaremes;
DAO_F_IDA_DESC mockDaoFIdaDesc

prepareExpects(){
     expect(mockDaoTSiIdabareme.findByDate(isA(Date.class)))
          .andReturn(searchByParameter(tSiIdabaremes, date));
}

是否可以使用将传递给 andReturn 中的 findByDate 的日期

PS:这是一个服务测试类,我正在以绕过数据库的方式进行它。

最佳答案

每当你使用这样的expect方法时

Easymock.expect(someMethod(Date.Class)).andReturn(something);

每当 Date 类的 ANY 对象作为参数传递时,您将指示编译器模拟对该方法的所有调用,并且您将无法在返回表达式中使用该对象。

另一方面,如果你有这样的事情,

Easymock.expect(someMethod(someSpecificDateObject)).andReturn(someSpecificDateObject);

当 Date 类的特定对象作为参数传递时(在本例中为 someSpecificDateObject),您指示编译器模拟此方法调用,您将能够返回时使用此参数,因为您知道仅当传递此对象时该方法才会被模拟。

如果第二个选项对您有利,您可以使用第二个选项,但使用第一个选项您所要求的内容是不可能的。

希望这有帮助!

祝你好运!

关于java - 在andReturn中使用expect的方法参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28860449/

相关文章:

java - Powermock 未返回正确的对象静态方法

java - EasyMock 异常处理

java - 在 JUnit 测试用例中模拟用户输入

java - 如何在 Travis CI 中构建 NetBeans 项目?

testing - 使用 Eclipse 进行 junit 测试

java - Antlr 在词法分析器中使用解析器

java - 包 org.powermock.api.easymock 不存在使用 gradle

java - 使用 Retrofit 从服务器获取信息并将所需数据分配给 Spinner

java - 在Java中将网页内容读入字符串的最佳方法是什么?

java - 如何在 AuditorAware 中获取 Keycloak 用户名