Mockito-Mockの使用方法
1545 ワード
一.Mockito
Mockitoは優れたmockフレームワークで、テストコードを簡潔にし、可読性が高く、エラーも非常にきれいになります.
二.@Mock
あなたのユニットテストが多くのbeanに関連している場合、それらを完全にコントロールすることはできません.簡単なビジネスロジックをテストするためにリモートサービスを呼び出す可能性があります.これは多くのオブジェクトと複雑なロジックに関連して頭が痛くなります.ビジネスロジックをテストするためにこれらの仕事をする必要はありません.@Mockはこのような問題を解決し、文字通りmockは元サービスの模倣である.Mockedオブジェクトは元のオブジェクトの動作を模倣しており,実際には空殻にすぎないが,この空殻がこの注入問題を解決している.私たちが関心を持っていないか、安全であることが証明されているオブジェクトの代わりにMockedオブジェクトを使用することができます.Mockitoは@Mock注釈を提供し、この作業を完了します.@Mock
private MService mService;
三.@InjectMocks
ユニットテストを行うときによくこのような問題に遭遇し、サービス間の結合性が高く、1つのサービスのユニットテストに対して他のサービスを導入する必要があることが多い.あなたのテスト対象に関心のない対象がたくさんある場合はどうすればいいですか?@Componet
public class TestService{
@Autowired
private MService mService;
@Autowired
private AService aService;
@Autowired
private BService bService;
//......
}
明らかに、あなたはそれらをすべて注入したくない.@Mockを使用して、関心のないオブジェクトを真似することができますが、これらのMockedオブジェクトをテストオブジェクトに注入するにはどうすればいいですか?@RunWith(MockitoJUnitRunner.class)
@ContextConfiguration(locations = {"classpath:application-content.xml"})
public class AWServiceTest {
@Mock
private MService masterProxyService;
@Mock
private AService aService;
@Mock
private BService bService;
@Autowired
private AnotherService anotherService;
@InjectMocks
private TestService testService;
@Test
public void test(){
}
}
@InjectMocksは、Mockedオブジェクトを修飾オブジェクトに注入することができます.これにより、Mockedオブジェクトをテストオブジェクトに注入することができます.
あなたのユニットテストが多くのbeanに関連している場合、それらを完全にコントロールすることはできません.簡単なビジネスロジックをテストするためにリモートサービスを呼び出す可能性があります.これは多くのオブジェクトと複雑なロジックに関連して頭が痛くなります.ビジネスロジックをテストするためにこれらの仕事をする必要はありません.@Mockはこのような問題を解決し、文字通りmockは元サービスの模倣である.Mockedオブジェクトは元のオブジェクトの動作を模倣しており,実際には空殻にすぎないが,この空殻がこの注入問題を解決している.私たちが関心を持っていないか、安全であることが証明されているオブジェクトの代わりにMockedオブジェクトを使用することができます.Mockitoは@Mock注釈を提供し、この作業を完了します.
@Mock
private MService mService;
三.@InjectMocks
ユニットテストを行うときによくこのような問題に遭遇し、サービス間の結合性が高く、1つのサービスのユニットテストに対して他のサービスを導入する必要があることが多い.あなたのテスト対象に関心のない対象がたくさんある場合はどうすればいいですか?@Componet
public class TestService{
@Autowired
private MService mService;
@Autowired
private AService aService;
@Autowired
private BService bService;
//......
}
明らかに、あなたはそれらをすべて注入したくない.@Mockを使用して、関心のないオブジェクトを真似することができますが、これらのMockedオブジェクトをテストオブジェクトに注入するにはどうすればいいですか?@RunWith(MockitoJUnitRunner.class)
@ContextConfiguration(locations = {"classpath:application-content.xml"})
public class AWServiceTest {
@Mock
private MService masterProxyService;
@Mock
private AService aService;
@Mock
private BService bService;
@Autowired
private AnotherService anotherService;
@InjectMocks
private TestService testService;
@Test
public void test(){
}
}
@InjectMocksは、Mockedオブジェクトを修飾オブジェクトに注入することができます.これにより、Mockedオブジェクトをテストオブジェクトに注入することができます.
@Componet
public class TestService{
@Autowired
private MService mService;
@Autowired
private AService aService;
@Autowired
private BService bService;
//......
}
@RunWith(MockitoJUnitRunner.class)
@ContextConfiguration(locations = {"classpath:application-content.xml"})
public class AWServiceTest {
@Mock
private MService masterProxyService;
@Mock
private AService aService;
@Mock
private BService bService;
@Autowired
private AnotherService anotherService;
@InjectMocks
private TestService testService;
@Test
public void test(){
}
}