我正在尝试对在Consumer函数接口中作为回调函数运行的代码进行单元测试。
@Component
class SomeClass {
@Autowired
private SomeInteface toBeMockedDependency;
public method() {
toBeMockedDependency.doSomething(message -> {
// Logic under test goes here
// (implements java.util.function.Consumer interface)
...
});
}
}
@RunWith(MockitoJUnitRunner.class)
public class SomeClassTest {
@InjectMocks
private SomeClass someClass;
@Mock
private SomeInteface toBeMockedDependency;
@Test
public void testMethod() {
...
someClass.method();
...
}
}
我希望通过“toBeMockedDependency”向测试代码提供已测试的“message”。
如何模拟“toBeMockedDependency”以提供预定义的消息?
这是否是正确的方法?
message
是从哪里来的?它是SomeClass
的字段,method()
的参数还是其他什么东西? - noscreennametoBeMockedDependency.doSomething(Consumer consumer) {
...
String message = "... ..";
consumer.accept(message);
...
}
- Borisconsumer.accept(message)
何时何地被调用吗? - noscreenname