Java 如何在我的所有集成测试文件上执行beforeach
在我的所有集成测试文件之前,我想在每个@before中运行一些代码。基本上,我需要添加的代码如下:Java 如何在我的所有集成测试文件上执行beforeach,java,spring,spring-boot,junit,integration-testing,Java,Spring,Spring Boot,Junit,Integration Testing,在我的所有集成测试文件之前,我想在每个@before中运行一些代码。基本上,我需要添加的代码如下: @MockBean RequestInterceptor interceptor; // I NEED THIS @BeforeEach public void initTest() throws Exception { Mockito.when(interceptor.preHandle(any(), any(), any())).thenReturn(true); // AND TH
@MockBean
RequestInterceptor interceptor; // I NEED THIS
@BeforeEach
public void initTest() throws Exception {
Mockito.when(interceptor.preHandle(any(), any(), any())).thenReturn(true); // AND THIS
}
有没有办法避免在每个文件中重复此部分?也许我可以创建一个测试配置文件,并在测试文件中使用注释。由于我对java spring boot非常陌生,我希望能得到一些帮助。谢谢。您可以创建超级类,例如BaseTest,并将此代码移到那里。然后,您的每个测试都应该扩展BaseTest。此外,您还可以在此类中设置所有注释。例如:
@AutoConfigureMockMvc
@MockitoSettings(strictness = Strictness.STRICT_STUBS)
@ExtendWith(MockitoExtension.class)
@ExtendWith(SpringExtension.class)
@ActiveProfiles("test")
@SpringBootTest
public class BaseTest {
@MockBean
RequestInterceptor interceptor; // I NEED THIS
@BeforeEach
public void initTest() throws Exception {
Mockito.when(interceptor.preHandle(any(), any(), any())).thenReturn(true); // AND THIS
}
}
然后你所有的测试:
class MeasurementsServiceTest extends BaseTest {
//test methods here
}
您可以创建一个具有beforeach方法的父基类,然后在所有其他方法上继承该类
public class BaseTestClass {
@BeforeEach
public void setUp(){
System.out.println("Base Test Class");
}
}
public class InheritsFromBase extends BaseTestClass {
// here goes test code
}
如果我正确理解了您的问题,您可以创建一个具有beforeach方法的父基类,然后在所有其他基类上继承该类……您还可以使用JUnit5的扩展或Junit的运行程序。我必须重命名
initTest
方法,否则它将被当前的initTest覆盖在测试文件中,但在其他方面工作正常,谢谢!