2017-02-12 50 views
0

我有OuterTest與此代碼:如何將外部類的值傳遞給@Nested @Test int JUnit 5?

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,C在外部課堂重新配置和配置,我該怎麼做?

回答

0

將溶液在repeatableTestSuite ,然後以限定protected MockMvc mockMvc@Nested

@Nested 
public class RepeatableTest extends RepeatableTestSuite { 

     @BeforeEach 
     void setUp() { 
      mockMvc = OuterClassTest.this.mockMvc; 
      url = OuterClassTest.URL; 
      service = OuterClassTest.this.service; 
     } 
    }