0
我試圖單元測試在消費者功能接口中作爲回調運行的代碼。基於消費者功能接口的單元測試回調
@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」,「信息」。
如何嘲笑「toBeMockedDependency」以提供預定義的消息?
這是正確的方法嗎?
'message'從哪裏來?它是'SomeClass'的一個字段,method()的參數還是別的? – noscreenname
在生產代碼中,依賴關係生成以下消息: 'toBeMockedDependency.doSomething(Consuner consumer){ ... String message =「... ..」;消息(message); ... }' –
Boris
你能否提供完整的代碼,告訴'consumer.accept(message)'何時被調用? – noscreenname