下面是我要为其创建测试的类和方法:
public class RequestController {
private GetAllInter getAnalytics;//This is an interface
@RequestMapping(value ="",method=RequestMethod.GET)
public String getAllAnalytics(){
log.debug("Processing request for all analytics");
String result;
try {
result = getAnalytics.getAll();
} catch (Exception e) {
result = "Could not retrieve full list of analytics";
log.error(result,e);
}
return result;
}
具体地说,我希望模拟getAnalytics.getAll(),这样它就会返回一个我已经定义的字符串。而不是方法执行它的任务。这是我的代码:
public class RequestControllerTest extends Mockito{
private String allAnalyticsStr = "Hello";
@Test
public void testGetAllAnalytics(){
GetAllInter getAll = mock(GetAllInter.class);
when(getAll.getAll()).thenReturn("what");
RequestController requestController = new RequestController();
assert(requestController.getAllAnalytics().equals("Hello"));
}
在执行测试之前,需要将RequestController#GetAnalytics字段替换为模拟的GetAllInter实例。
GetAllInter getAll = mock(GetAllInter.class);
when(getAll.getAll()).thenReturn("what");
该语句不会影响RequestController的getAnalytics实例行为,除非您将其设置为RequestController的字段。
我发现了类似的问题mockito-模拟接口-抛出NullPointerException
但是使用@InjectMocks将是更好的解决方案,因为您不需要修改RequestController类来进行测试。
如何模拟返回已强制转换的模拟对象的方法。 试验方法。
问题内容: 似乎模拟仅验证模拟对象的方法是否被调用,并且模拟对象始终具有类似以下内容的东西 但是我可以创建一个模拟对象并定义 然后验证另一个对象的方法是否被调用吗? 这是我想做的事情:我定义了一个模拟环境,无论发生什么情况都返回一个响应。但是然后我想验证在不同情况下调用anotherObj的不同方法。 怎么做? 问题答案: 您可以为此使用Mockito Spy。如果您设置为间谍,则可以验证该对象上
我有一个java代码,我在其中调用scala对象的方法(依赖库的)。为了编写单元测试,我想模拟scala对象的方法调用 Operations.Scala
所以我想做一些事情 但我得到了空异常
我试图在静态方法中模拟静态方法。 我想知道不使用任何框架是否可能。 有没有办法达到我的目的?
我试图在测试中模拟一个调用,但我得到了一个错误,因为它调用了真正的方法,而不是模拟它。 这是我的方法 } 这是我的测试课 测试实际上调用了受保护的方法config Setter,并在设置代理时失败。帮助我理解我在这里做错了什么。