11import com .zsx .mockito .UserService ;
22import com .zsx .mockito .UserServiceImpl ;
3+ import org .junit .After ;
4+ import org .junit .jupiter .api .AfterEach ;
35import org .junit .jupiter .api .BeforeEach ;
46import org .junit .jupiter .api .Test ;
7+ import org .junit .runner .RunWith ;
58import org .mockito .InjectMocks ;
69import org .mockito .Mock ;
710import org .mockito .Mockito ;
811import org .mockito .MockitoAnnotations ;
12+ import org .mockito .junit .MockitoJUnitRunner ;
913
1014import static org .mockito .Mockito .*;
1115
16+ /*
17+ `@RunWith(MockitoJUnitRunner.class)` 是一个注解,用于指定 JUnit 测试类使用的测试运行器(Runner)。
18+ 在这个例子中,`MockitoJUnitRunner` 被用来初始化 `@Mock` 和 `@InjectMocks` 注解的字段。
19+ 具体来说,`MockitoJUnitRunner` 会在每个测试方法执行前调用 `MockitoAnnotations.initMocks(this)` 方法来初始化这些注解。
20+ 这样可以确保在测试方法中使用到的模拟对象已经被正确地创建和配置。
21+ */
22+ //@RunWith(MockitoJUnitRunner.class)
1223public class MockitoTest {
1324
1425 @ Mock
@@ -21,10 +32,17 @@ public class MockitoTest {
2132 public void setUp () {
2233 // 初始化 @Mock 注解标记的对象
2334 MockitoAnnotations .openMocks (this );
35+
36+
37+ }
38+
39+ @ AfterEach
40+ public void after () throws Exception {
41+ System .out .println ("after" );
2442 }
2543
2644 @ Test
27- void test01 () {
45+ public void test01 () {
2846
2947 // 创建mock对象
3048 //UserService userService = mock(UserService.class);
@@ -39,5 +57,16 @@ void test01() {
3957 }
4058
4159
60+ @ Test
61+ void test02 () {
62+
63+ when (userService .getUserName (any ())).thenReturn ("test" );
64+ when (userServiceImpl .getUserName (any ())).thenReturn ("test" );
65+
66+ userServiceImpl .getUserName (any ());
67+
68+ verify (userService ).getUserName (any ());
69+ }
70+
4271 // todo zsx 待验证和补充
4372}
0 commit comments