Junit とともに Spring Test フレームワークを使用しています。テストケースに使用するSpringコンテキストファイルがあります:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({ "classpath:spring/restTestContext.xml",
"classpath:spring/webserviceContext.xml" })
@PrepareForTest(User.class)
public class RestTestsIT {
// This is a mock
@Autowired private AWSMailService mailService;
...
}
restTestContext.xml 内で、タイプ AWSMailService の Bean を作成しています (これは実際にはモックです)。
<bean id="mailService" name="mailService" class="org.mockito.Mockito" factory-method="mock">
<constructor-arg value="com.acme.utils.email.AWSMailService" />
</bean>
テスト内で sendEmail() メソッドが mailService モックで呼び出されたことを確認しようとしていますが、オブジェクトで toString() を呼び出すと、それがモックであることがわかりますが、NotAMockException が発生します。
public void testEmailSent() {
...
// Results in "Mock for AWSMailService, hashCode: 31777764"
System.out.println(mailService.toString());
// Results in NotAMockException
verify(mailService).sendEmail(any(String.class), ...);
}
これを引き起こしている可能性のあるアイデアはありますか?
ありがとう