Playframework 2.0 play框架:使用假应用程序进行测试
我正在尝试测试如下功能:Playframework 2.0 play框架:使用假应用程序进行测试,playframework-2.0,playframework-2.1,Playframework 2.0,Playframework 2.1,我正在尝试测试如下功能: @Test public void testAddTask() { FakeApplication fakeApplication = fakeApplication(inMemoryDatabase()); start(fakeApplication); Task task=new Task(); task.title="test Task"; task.save();
@Test
public void testAddTask() {
FakeApplication fakeApplication = fakeApplication(inMemoryDatabase());
start(fakeApplication);
Task task=new Task();
task.title="test Task";
task.save();
assertThat(Task.find.where().ilike("title", "task")).isNull();
stop(fakeApplication);
}
谁成功了谁错了
当
失败了,这就是我所期望的
startMakeApplication
的行为不应该与“正在运行(fakeApplication()”的行为相同吗?是的,它
/**
*在正在运行的应用程序中执行代码块。
*/
公共静态同步无效运行(FakeApplication FakeApplication,最终可运行块){
试一试{
启动(伪造申请);
block.run();
}最后{
停止(伪造申请);
}
}
造成差异的原因可能是在运行其他测试后未进行清理。running()
具有try..finally
构造,将停止(fakeApplication);
放入后注释为@的方法中(建议在前中初始化fakeApplication
)
我不喜欢running()
helper方法,因为它不允许在run()
中抛出异常
@Test
public void testAddTask(){
running(fakeApplication(inMemoryDatabase()), new Runnable() {
public void run() {
Task task=new Task();
task.title="test Task";
task.save();
assertThat(Task.find.where().ilike("title", "task")).isNull();
}
});
}