コンシューマー機能インターフェイスでコールバックとして実行されるコードを単体テストしようとしています。
@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」をモックして、事前定義されたメッセージを提供するにはどうすればよいですか?
それは正しいアプローチですか?