2014-02-15 85 views
13

我想使用mocha作爲node.js。我使用的最後一個測試框架是Ruby on Rails中的Rspec,因此我試圖以相同的方式來完成,但我得到了框架以及我可以使用的所有庫。如何使用mocha測試框架與node.js和sails.js

我跟着官方開始但它並沒有解釋如何組織測試。

http://visionmedia.github.io/mocha/#installation

現在,我讀書,我可以使用以下庫:

而且我知道還有更多,這只是我在摩卡官方網站上看到的清單。 對於我所能理解的,它看起來像柴是一個用摩卡咖啡,你怎麼看?

到目前爲止,我從來沒有看到任何東西來幫助我決定在哪裏編寫測試(當然,在/ test /中),以及如何組織一切。

我也使用偉大的sails.js框架(基於express)和pomelo.js爲不同的項目,我需要在這兩個框架上使用相同類型的測試,所以我正在尋找一個通用的體系結構以及我可以同時使用的庫(所以,對於sails.js不是特定的,但可以直接從任何其他框架使用)

這是我計劃組織測試的方式,您認爲這是一個正確的體系結構嗎? enter image description here

與節點的主要問題是,有很多的框架,插件庫,我不知道什麼是最好的選擇,Node.js的是一個大社區真正巨大的,這真的很難有一個概述所有可能性。

你如何處理你的測試?

+2

對於摩卡帆的基本用法見[這裏](https://github.com/bredikhin/sailsjs-mocha-testing-barrels-fixtures-example)。 – bredikhin

回答

3

創建一個文件,你的測試文件夾

內部命名test.js測試斷言最好的選擇是像薛寶釵還是應該或期望,用於測試REST API或發送HTTP請求,您可以使用supertest。首先包含測試文件中的所有庫

"use strict" 
var should = require('should'); 
var assert = require('assert'); 
var request = require('supertest'); 

現在爲業務邏輯測試包括您需要的文件。說我有一個名爲內部API login服務的文件/服務,您可以通過以下

var loginService = require('../api/services/LoginService'); 

現在你可以開始測試你的試塊的樣子相似

describe('Sample Test', function(){ 
    var url = "http://localhost:1337/"; 
    before(function(done){ 
     //Anything that needed to be done before executing; 
     done(); 
    }); 

    it("Should test rest api", function(done){ 
     var email = {'email':'[email protected]'}; 
      //Calling rest api with email as a part of req body 
     request(url) 
     .post('api/v1/email/isvalid') 
     .send(email) 
     // end handles the response 
     .end(function(err, res) { 
      if (err) { 
       throw err; 
      } 
        // Check response 
      res.should.have.status(200) ; 
      done(); 
     }); 
    }); 

    it("Should test business logic", function(done){ 
     loginService.someFunction(someParameter, function callback(data){ 
      //do your logic test here 
      done(); 
     }); 
    }); 
}); 

希望的東西這有助於包括它。

+1

這似乎是通常的建議。但是如果組織一個實際上有一些測試的項目,而不僅僅是一個測試文件呢? –

+1

一個好的做法是爲源文件夾中的每個文件在克隆的文件夾樹下包含一個同名文件+後綴的文件,其中包含該源文件的測試 –

7

我發現博客文章Unit Testing Sails.js Applications With Mocha有助於設置和組織測試。

但是,因爲我使用的是Sails版本0.10.5,所以我決定清理一下Grunt配置。我在tasks/config/文件夾中添加名爲mocha.js一個文件,下面的代碼:

module.exports = function(grunt) { 

    grunt.config.set('mochaTest', { 
     test: { 
     options: { 
      reporter: 'spec' 
     }, 
     src: ['tests/**/*.spec.js'] 
     } 
    }); 

    grunt.loadNpmTasks('grunt-mocha-test'); 

}; 

然後我通過創建一個名爲test.jstasks/register內部文件中註冊的任務。在這個文件中,我添加了下面的代碼。您可以運行grunt test查看結果。

相關問題