0

我有OuterTest这个代码:

private MockMvc mockMvc;

@Mock
private Service Service;

@InjectMocks
private RestController RestController;

@BeforeEach
public void setUp() {
    MockitoAnnotations.initMocks(this);
    mockMvc = standaloneSetup(RestController)
            .build();
}

我有一个带有测试的嵌套类,在我的项目中重复了几次,但需要分别在我的所有控制器上进行测试

     @Nested
     public class RepeatableTest extends repeatableTestSuite {

            }
        }

这是测试用例,在整个项目中重复

@Test
void repeatableTestCase_shouldFailTest(MockMvc mockMvc, String url, Service service) throws Exception {

    mockMvc.perform(post(url, INVALID_VALUE))
                    .andExpect(status().isBadRequest())

            verifyZeroInteractions(service);
        }

该测试失败,因为它需要在外部类创建和配置的 MockMvc 和 URL,我该怎么做?

4

1 回答 1

0

解决方案是在类中定义protected MockMvc mockMvcrepeatableTestSuite 然后在@Nested类中定义

@Nested
public class RepeatableTest extends RepeatableTestSuite {

        @BeforeEach
        void setUp() {
            mockMvc = OuterClassTest.this.mockMvc;
            url = OuterClassTest.URL;
            service = OuterClassTest.this.service;
        }
    }
于 2017-02-12T21:09:39.027 回答