java - Mockito when()..thenReturn() 总是返回 null
问题描述
我目前正在为 Play Controller 编写测试。
在我的控制器中,我有一些调用方法的服务
MyMethod {
String test = myService.test()
ObjectNode result = myService.myFunc(..someListOfEnums, ...string, ...someListOfString, ...someString, ...some String, ...clientObject)
}
当使用 mocked 运行我的测试时myService
,使用 when()...thenReturn()myFunc(...)
结果始终为空。当我test()
对测试字符串执行相同操作时,总是会填充。这里MyService.class
是一个界面。
在我的测试中,我正在做:
Client _someMockedObject = mock(Client.class);
MyService _myService = mock(MyService.class);
ObjectNode n = JsonNodeFactory.instance.objectNode();
n.set(Constants.RESULT_FIELD, JsonNodeFactory.instance.arrayNode());
List<SomeEnumClass> l = new ArrayList<>(Arrays.asList(Constants.Enum.test, Constants.Enum.test2));
String test = "test";
List<String> c = new ArrayList<>(Arrays.asList("test1", "test2"));
String test2 = "";
String test3 = "";
when(_myService.test()).thenReturn("hello"); <--- FIRST
when(_myService.myFunc(l, test, c, test2, test3, _someMockedObject)).thenReturn(n); <--- SECOND
PrestoResource myController = new myResource(_someMockedObject, _myService);
Result result = myController.myMethod("");
...
看起来我正在正确使用 when 和 thenReturn 但我没有在第二种方法中输入正确的参数吗?
解决方案
推荐阅读
- python - 如何在 Matplotlib 中制作订单簿深度图?
- android - 迁移到 3.6.0 以上的 gradle 版本,ClassNotFoundException
- python - windows上的麦克风无法使用python进行speech_recognition
- plsql - 如何从对象自定义类型的表中检索列名
- arrays - 非常大的数组的前 10% 公式?
- android - 限定符类型和值是什么?
- python-3.x - 使用 Pillow 将彩色文本添加到 256 色调色板 gif
- python - 如何按日期时间值过滤 JSON 对象?
- reactjs - 将数字转换为LocaleString 反应
- tensorflow - Keras CNN 在 M1 MacBook 上不起作用 - NSRangeException - NSArrayM objectAtIndexedSubscript:空数组的索引 0 超出范围