
Junit TestInstance
coding十二月 05, 20211mins
Java Test
测试的时候需要准备测试环境,通常通过beforeAll 、beforeEach 来初始化,他俩分别时在测试类初始化的时候以及每个Test方法执行前被调用。
一般情况下这不是什么问题,但是在Spring的测试环境下会遇到些问题,比如某个类依赖于Spring注入的某个实例,这就导致不能使用beforeAll ,因为这个时候Spring上下文都没有初始化好,没法注入;这就导致只能使用beforeEach ,但是如果该类初始化的又比较大,逻辑较复杂,初始化的成本较高,每次执行测试方法前执行导致效率比较低下,该怎么办。
其实就是说,如何定义一个实例级别的setup
@TestInstance has two modes.
- One is LifeCycle.PER_METHOD(the default).
- The other is Lifecycle.PER_CLASS.
The latter enables us to ask JUnit to create only one instance of the test class and reuse it between tests.
bash
@TestInstance(Lifecycle.PER_CLASS)class TweetSerializerUnitTest {private String largeContent;@BeforeAllvoid setUpFixture() {// read the file}}
评论
新的评论
上一篇
反向代理后的客户端IP
如果服务器被反向代理,获取客户端的IP会获取到最后的一个代理服务器的地址;反过来重定向应该是反向代理服务器的IP而不是服务器自己的IP。 代理服务器一般会在代理过后,将原始的客户端IP添加到 X-Forwarded-* 相关的头中,例如 X-Forwarded-For: IP…
下一篇
Annotation Processor
Annotation Processor主要是用来根据注解生成代码, 主要发生编译时。 Javac 、或者 apt 都支持调用预处理器来进行预处理、代码生成。 Javac默认启用了apt,除非通过 -proc:none 选项关闭。处理器的搜索路径可以通过 -processo…
