1

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

谢谢。

4

1 回答 1

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);
    }
}
于 2013-04-12T01:35:41.197 回答