有没有办法在测试之前强制完全重建Spring上下文 ? 使用@DirtiesContext标记它不会影响当前测试。 为什么:在测试之前的原因我设置了一些系统属性,这些属性会影响构建期间的上下文。
答案 0 :(得分:0)
对不起,我不这么认为。
我还没试过这个,但是一个解决方法可能是在@Before
或@BeforeClass
方法中获取上下文,并调用reload。
您的测试应该按照Spring Framework Reference中的测试上下文指南获取上下文(并将其转换为ConfigurableApplicationContext
)。
答案 1 :(得分:0)
好吧,我设法做到了......但我警告你,很脏!
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { .... })
// order of test methods is important!
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class MyTest {
static {
System.setProperty("myprop", "myvalue");
}
/**
* Fake test that forces spring to reload context before real tests.
*/
@Test
@DirtiesContext
public void aaReloadContext() {
}
/**
* Fake test that clears system property after tests.
*/
@Test
public void zzClearProperty() {
System.clearProperty("myprop");
}
... real test methods...