Java8を使用しています。
JUnit5とMockito3.8.0を使用してテストを書いてみたくて
試しに簡単なテストを作ったのですが、
以下のテストを実行すると
モックが呼ばれたことを期待しているが、呼ばれていない
という意味のエラーが出ます。
私のコードはどこが悪いのでしょうか?
【エラーメッセージ内容】
Wanted but not invoked: gateway.getInputValue(); Actually, there were zero interactions with this mock.
【gradleのdependency】
testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: JUNIT_JUPITER_VERSION testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: JUNIT_JUPITER_VERSION testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-params', version: JUNIT_JUPITER_VERSION testImplementation group: 'org.junit.vintage', name: 'junit-vintage-engine', version: JUNIT_JUPITER_VERSION testImplementation group: 'org.junit.platform', name: 'junit-platform-launcher', version: '1.6.2' testImplementation group: 'org.mockito', name: 'mockito-core', version: '3.8.0' testImplementation group: 'org.mockito', name: 'mockito-junit-jupiter', version: '3.8.0'
【テストコード】
@ExtendWith(MockitoExtension.class) public class UsecaseTest { @InjectMocks Usecase target = new Usecase(); @Mock private Gateway gateway; @Test void モックを使ってみるテスト() { String hoge = "200"; Mockito.when(gateway.getInputValue()).thenReturn(hoge); target.total(); Mockito.verify(gateway).getInputMoney(); } }
【Usecase】
package com.myapp.usecase; import com.myapp.usecase.gateway.Gateway; public class Usecase { private final Gateway gateway = new Gateway(); public void total() { String aaa = gateway.getInputValue(); } }
【Gateway】
package com.myapp.gateway; public class Gateway { public String getInputValue() { return "未実装"; } }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。