ros*_*han 2 unit-testing playframework
每当我在我的网站上运行自动测试时,所有表都会被清理为0行.这是设计的吗?我该如何预防?
更新:发现真正的"罪魁祸首"%test.jpa.ddl = create
那是设计上的.单元测试不应对某些预先存在的状态(如持久数据)有任何外部依赖性.如果您需要用于测试目的的数据,则需要在@Before设置方法中进行设置.例如:
@Before
public void setUp() {
// The following loads test data from the YAML file
Fixtures.loadModels("test-data/users.yml");
}
@Test
public void someTest() {
assertEquals(5, User.count()); // 5 User records exist due to @Before method
}
Run Code Online (Sandbox Code Playgroud)
您应该查看您的conf/application.conf文件,并注意您有一行内容如下:
%test.db=mem
Run Code Online (Sandbox Code Playgroud)
这是默认设置 - 表示当应用程序在测试模式下运行时,使用内存数据库.如果希望测试对持久数据(不推荐)起作用,则可以更改测试模式数据库设置.有关详细信息,请参阅播放测试