import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.mockito.ArgumentCaptor;
import org.mockito.Captor;
import org.junit.jupiter.api.Test;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
class SampleTest {
private Sample sample = new Sample();
// ロガー確認用 渡される引数をキャプチャする
@Captor
ArgumentCaptor<String> logMessageCaptor;
@Mock
private Logger mockLogger;
@BeforeEach
public void setUp(){
MockitoAnnotations.initMocks(this); //これを実行することで、テスト対象クラスのフィールド変数をモックと入れ替えられる。
}
@Test
void testRun() {
sample.run();
verify(mockLogger, times(1)).info(logMessageCaptor.capture()); //ここでロガーのinfo実行回数を確認しつつ、引数をキャプチャしてる
assertEquals("サンプルメッセージ", logMessageCaptor.getValue());
}
}