我是Play的新手! 2.1。我正在尝试TDD我的数据库集成测试。看完网站上的例子。我这样写了我的测试。
@Test
public void shouldGetDealName() {
running(fakeApplication(), new Runnable() {
public void run() {
List books = Book.find.all();
Assert.assertEquals(books.size(), 1);
}
});
}
我的问题是,我是否需要始终将代码包装在running(fakeAppliation()...
中?因为如果我在没有fakeApplication的情况下运行此代码。它似乎不起作用。如果它必须像那样,那么在Java中有更好的方法吗?对于我来说,每次进行集成或功能测试时将代码包装在该块中似乎是错误的。
感谢。
答案 0 :(得分:1)
你可以这样做,假设你想使用内存数据库,并希望为每个测试重新创建它:
public class ApplicationTest extends WithApplication {
@Before
public void setup() {
start(fakeApplication(inMemoryDatabase(), fakeGlobal()));
}
@Test
public void shouldGetDealName() {
List books = Book.find.all();
Assert.assertEquals(books.size(), 1);
}
}