如何在Play 2.1中正确编写数据库集成测试?

时间:2013-04-11 23:05:07

标签: java playframework-2.0 integration-testing

我是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中有更好的方法吗?对于我来说,每次进行集成或功能测试时将代码包装在该块中似乎是错误的。

感谢。

1 个答案:

答案 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);
    }
}