?????????????ν?mock??????????????????????????setter????????????
???????
???????:?????service??????????????????????spring?????е??
???????????????????У???????????????@InjectMocks????????????????????? @Mock??
???????????MockitoAnnotations.initMocks(this);??仰????????????????????????????????spring??????????????name?????????????????ж??????дsetter??????
????????
????1????????
@Component("abcService")
public class AbcService {
@Resource(name="aaaDao")
private AaaDao aaaDao;
@Resource(name="bbbDao")
private BbbDao bbbDao;
......//??????????????в???????aaaDao??bbbDao??setter??????
}
????2????????
public class AbcServiceTest{
@InjectMocks
AbcService abcService;
@Mock
AaaDao aaaDao;
@Mock
BbbDao bbbDao;
@Before
public void setup(){
MockitoAnnotations.initMocks(this);//??仰??????aaaDao??bbbDao??????abcService?С?
//?????????????????????when().then()????и?????????á?
}
}
??????????????ζ?????????y??в???????
??????????????y??в??????? (iterator-style stubbing)
??????????????2???????????????????????????????stub??????????????μ???Ρ????????????????????????к??????????????mockito?????????????
when(mock.someMethod("some arg"))
.thenThrow(new RuntimeException())
.thenReturn("foo");
//First call: throws runtime exception:
mock.someMethod("some arg");
//Second call: prints "foo"
System.out.println(mock.someMethod("some arg"));
//Any consecutive call: prints "foo" as well (last stubbing wins).
System.out.println(mock.someMethod("some arg"));
??????????????????????д??????Щ??
????when(mock.someMethod("some arg"))
????.thenReturn("one"?? "two"?? "three");