2016-09-27 68 views
5

我有一個Loopback API,其型號爲Student環回模型的單元測試

我如何寫的Student模型的節點API方法的單元測試,而不調用REST API?我無法找到任何文檔或示例來通過節點API本身測試模型。

任何人都可以請幫忙嗎?

+1

對於背景:Strongloop文檔不真正解釋測試顯然和google搜索「strongloopjs測試」僅產生像這樣的文章:https://strongloop.com/strongblog/how -a-test-an-api-with-node-js /它使用HTTP API測試應用程序,而不是對模型本身進行單元測試。 –

回答

4

實施例與測試count方法

// With this test file located in ./test/thistest.js 

var app = require('../server'); 

describe('Student node api', function(){ 
    it('counts initially 0 student', function(cb){ 
     app.models.Student.count({}, function(err, count){ 
     assert.deepEqual(count, 0); 
     }); 
    }); 
}); 

這種方式可以測試節點API,而不調用REST API。

然而,對於內置的方法,這個東西已經被strongloop所以應該相當無用的測試節點API測試。但對於遠程(=自定義)方法,它仍然很有趣。

編輯: 這種做事方式沒有被闡明的原因是因爲最終,您將需要測試您的完整REST API以確保不僅節點API按預期工作,而且ACL已正確配置,返回代碼等等。所以最後,你最終會爲同一件事寫兩個不同的測試,這是浪費時間。 (除非你喜歡寫測試:)

+0

感謝您的回答,但上面給出的代碼存在一個問題。對於單元測試,我不想用我的實際分貝。我想用在內存分貝。那麼在這種情況下如何在內存數據中創建?以及如何在內存數據庫中添加用戶,訪問令牌? 另外我想使用beforeEach鉤插入學生表中的記錄。這樣我可以得到一些計數值。 希望這解釋更多關於我的問題。 –

+0

無法從問題中猜出來,但是創建內存數據庫非常簡單(請參見[這裏](https://docs.strongloop.com/display/public/LB/Memory+connector))。它對你來說是透明的,無論你使用內存還是真正的數據庫。 – Overdrivr

+0

要添加用戶,訪問令牌等,只需使用我給出的鏈接中記錄的節點API。這裏又是:http://apidocs.strongloop.com/ – Overdrivr