首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无论如何,要创建一个创建模拟的测试帮助类?

无论如何,要创建一个创建模拟的测试帮助类?
EN

Stack Overflow用户
提问于 2016-01-09 00:32:08
回答 1查看 699关注 0票数 0

在对遗留系统的测试中,我发现自己不得不对系统的不同部分模拟类似的类,因为我正在增加测试覆盖率。我想为我的测试创建一个助手类,它可以调用一个方法来设置特定的模拟及其返回值。

下面是一个我不得不在多个测试中创建几次的方法的例子。

代码语言:javascript
运行
复制
public void mockClassINeedToMockToReturn(Boolean bool){
   mockStatic(classINeedToMock.class); 
   when(classINeedToMock.getSuccess(Mockito.any(someClass.class))).thenReturn(bool);
}

我尝试在HelperTest.class中设置它(与我的测试位于同一个项目/文件夹中),但它没有工作。我已经在这个类中包含了以下两种注释。

代码语言:javascript
运行
复制
@RunWith(PowerMockRunner.class)
@PrepareForTest({classINeedToMock.class})

我试过:

  1. 静态地使用这些方法并在我的测试中调用它们。(不嘲笑)
  2. 创建一个HelperTest对象并在我的测试中调用该方法。(仍然不嘲笑)
  3. 让我的测试扩展我的HelperTest.class并在我的测试中调用这个方法。(仍然拒绝嘲笑全班学生)

我确信这与PowerMockRunner的工作方式有关。有办法让这件事成功吗?或者我应该接受在整个项目中复制这些方法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-09 00:53:15

关键是细节..。当我更多地研究它时,我注意到我正在嘲笑的类有两种不同的方法。

代码语言:javascript
运行
复制
theClass.method(var1, var2);
theClass.method(var1, List<var2>); 

我的一个测试是调用第一个方法,另一个是调用第二个方法。当我运行第二个测试(只是模拟了第一个方法)时,它正在调用实际的类,因为该方法没有被模拟。

在使用适当的输入参数设置正确的模拟之后,我可以静态地调用该方法,并将适当地创建和使用模拟。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34688353

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档