【问题标题】:How to pass a value of outer class to a @Nested @Test int JUnit 5?如何将外部类的值传递给@Nested @Test int JUnit 5?
【发布时间】:2017-02-12 19:09:44
【问题描述】:

我有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,我该怎么做?

【问题讨论】:

    标签: junit5


    【解决方案1】:

    解决方案是在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;
            }
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多