package org.springside.examples.bootapi.functional;
import org.junit.Rule;
import org.junit.rules.TestRule;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.test.SpringApplicationConfiguration;
import org.springframework.boot.test.WebIntegrationTest;
import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springside.examples.bootapi.BootApiApplication;
import org.springside.modules.test.rule.TestProgress;
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = BootApiApplication.class)
// 定义为Web集成测试,并使用随机端口号
@WebIntegrationTest("server.port=0")
// 定义每执行完一个Test文件刷新一次Spring Application Context,避免Case间的数据影响.
// 但Test文件内多个测试方法间的影响仍需注意
@DirtiesContext
public abstract class BaseFunctionalTest {
// 注入启动server后的实际端口号
@Value("${local.server.port}")
protected int port;
// 在Console里打印Case的开始与结束,更容易分清Console里的日志归属于哪个Case.
@Rule
public TestRule testProgress = new TestProgress();
}