如何在junit中初始化spring bean以实现测试之间的分离?

rks48beu  于 2022-11-11  发布在  Spring
关注(0)|答案(1)|浏览(150)

我正在使用Junit5Spring进行测试。我希望为每个测试初始化spring bean,因为我不希望不同的测试更改其他测试的结果。
我知道默认情况下,在运行每个测试方法之前会创建一个测试类的新示例。测试代码的结果为真,因为每个测试的示例变量编号都是由junit5初始化的

public class TestInstanceVaribale{

    int number = 0;

    @Test
    public void test1() {
        number += 3;
        Assertions.assertEquals(3, number);
    }

    @Test
    public void test2() {
        number += 5;
        Assertions.assertEquals(5, number);
    }
}

但是,由于Spring Bean未初始化,此代码失败。
第一个
如何在junit中初始化spring bean以分离测试?

@SpringBootTest
@initalizeSpringBeanPerMethod <-- I want like this
public class TestSpringVariable2 {

    @Autowired
    Car car;

    @BeforeEach
    public void initalize() { <-- I want like this
        SpirngBean.initalize()
    }

}
wnvonmuf

wnvonmuf1#

看一看DirtiesContext
它告诉Spring在每次测试之后/之前重置它的状态(取决于你如何设置它)

@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD)

相关问题