簡體   English   中英

如何使用Java在Play框架中對MongoDB Connection進行集成測試

[英]How to do integration test on MongoDB Connection in play framework using Java

我想對我的項目進行集成測試,以測試模式將一些數據存儲到MongoDB中。 我正在使用org.Mongo。

我在/ test文件夾中有一些測試單元類。 但是,當我從eclipse運行單元類時,從Mongo DB中根本找不到任何數據,也無法從中獲取任何集合實例。

測試代碼如下:

@Test
public void test(){
    running(testServer(3333, fakeApplication(conf.asMap())), HTMLUNIT, new Callback<TestBrowser>() {
            public void invoke(TestBrowser browser) {
                String body = "\"name:\": \"abc\"";
                MongoStore.store(body);
            }
    });
}

conf是不同於application.conf的配置文件,我使用它來提供臨時配置。 MongoStore只是將數據存儲在mongoDB中的包裝器。

我永遠無法將日期存儲到Mongo中(我很確定mongo連接的其余部分都很好用),也無法獲取DBCollection的實例。

在測試單元中運行時,有人知道如何將Play連接到mongo db嗎?

我終於想通了。

在原始代碼中,我編寫了一個插件來連接到mongoDB。 似乎在測試模式下,播放不會自動加載該插件。 因此,我需要將其作為法寶應用程序()的參數添加為附加插件。

之后一切正常。

受到stackoverflow中一個問題的啟發,該問題提到在測試模式下未自動啟用插件,因此忘記了鏈接思想(多么可惜!)

其他鏈接:插件的名稱應與conf / play.plugins中的名稱相同。 如何在Play框架單元測試中加載不同的插件?

使用測試配置播放2.0 FakeApplication設置

現在,這個答案可能為時已晚並且無關緊要,但是我補充一下,以防萬一有人覺得有用。 我寫了一個自以為是的方式來使用MongoDB的集成/單元測試播放應用在這里 該存儲庫使用reactmongo作為驅動程序,並使用scalatest作為測試框架。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM