はじめに
テストソースの特定メソッドの返却値を自由に設定する方法を下記に記述します。
ソース
本来であれば絶対に通らないルート("失敗ルート")でも返却値を任意に設定することができるので挙動を確認することができます。
junit
public class Simplecode {
public String stringReturn() {
return "成功ルート";
}
public static void main(String[] args) {
if ("成功ルート".equals(stringReturn())) {
System.out.println("成功ルート");
} else {
System.out.println("失敗ルート");
}
}
}
下記設定により、simplecode.stringReturn()を呼び出した際、"テスト"を返却値として返してくれるようになります。
java
import static org.mockito.Mockito.*;
import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
public class SimpleTest {
@Mock
private Simplecode simplecode;
@BeforeEach
public void setUp() {
MockitoAnnotations.openMocks(this);
}
@Test
public void testCalculateMethodReturnsSuccessRoute() {
// "テスト"を返却値に設定する
when(simplecode.stringReturn()).thenReturn("テスト");
}
}
おわりに
仕様の段階でありえない値だったとしてもソースで2重に確認することがあります。
その際のテストにすごく便利で、カバレッジを100%にする際もとても便利でした。