2017-02-12 5 views
0

ich habe OuterTest mit diesem Code:Wie übergibt man einen Wert der äußeren Klasse an einen @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(); 
} 

und ich habe eine verschachtelte Klasse, mit Tests, die für einige Male über mein Projekt wiederholt, müssen aber separat

 @Nested 
    public class RepeatableTest extends repeatableTestSuite { 

      } 
     } 
an alle meine Controller getestet werden

dies ist der Testfall, dass alle über Projekt

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

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

      verifyZeroInteractions(service); 
     } 

dieser Test fehlschlägt, weil es c müssen MockMvc und URL wiederholt, Reated und konfiguriert in der äußeren Klasse, wie kann ich das tun?

@Nested 
public class RepeatableTest extends RepeatableTestSuite { 

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

Antwort

0

war die Lösung in protected MockMvc mockMvcrepeatableTestSuite und dann in

@Nested Klasse zu definieren,
Verwandte Themen