2014-01-10 4 views
6

の私のモデルをテストしたが、エラーメッセージが表示されましたができません:は、ユニットは、私はユニットテストUserモデルに次のコードを使用しています私の帆アプリのsailsjs

:作成「『

』はTypeErrorオブジェクト#は、方法はありません」
var User = require('../../api/models/User'); 
var Sails = require('sails'); 

console.log(User); 

describe("User Model:", function() { 

    // create a variable to hold the instantiated sails server 
    var app; 

    // Global before hook 
    before(function(done) { 

    // Lift Sails and start the server 
    Sails.lift({ 

     log: { 
     level: 'error' 
     }, 

    }, function(err, sails) { 
     app = sails; 
     done(err, sails); 
    }); 
    }); 

    // Global after hook 
    after(function(done) { 
    app.lower(done); 
    }); 

    describe("Password encryption", function() { 

    describe("for a new user", function() { 
     var user; 
     before(function (cb) { 
     var userData = { 
      email: "[email protected]", 
      password: "test_password", 
      passwordConfirmation: "test_password" 
     }; 

     User.create(userData, function (err, newUser) { 
      if (err) return cb(err); 
      user = newUser; 
      cb(); 
     }); 
     }); 

     it("must encrypt the password", function() { 
     user.must.have.property('encryptedPassword'); 
     user.must.not.have.property('password'); 
     user.must.not.have.property('passwordConfirmation'); 
     }); 

     after(function (cb){ 
     user.destroy(function (err) { 
      cb(err); 
     }); 
     }); 
    }); 

帆が正しく持ち上げられているように見えますが、作成方法が使用できない原因は何ですか?帆アプリが解除されたら、例えば、hereを参照してください、自動的にあなたのモデルが利用可能になります

var User = require('../../api/models/User'); 

+0

私はnodejsにはかなり新しく、私が構築しているアプリケーションのためのいくつかのテストを書こうとしています。あなたのモデルを見て、私のモデルのテストを書く方法を考えてみてください。ありがとう – kushaldsouza

答えて

14

は、最初の行を削除します。

あなたのケースでは、最初の行がSails.jsによって構築されるUserモデルをオーバーライドします。そのため、オブジェクトを持っていても、それはウォーターラインモデルではありません。

+1

テストフォルダ(任意のフォルダの下)にtest.jsファイルを定義すると同じ問題に遭遇しています.URLがUserモデルに到達するのにエラーが発生しました。 "ReferenceError:User not defined "。var user = require( ' ../api/models/User.js ');エラーを示します "TypeError:オブジェクト#にはメソッドがありません '作成' – tajuddin

+0

@tajuddin [この例]を見てください(https://github.com/bredikhin/sailsjs-mocha-testing-barrels-fixtures-example/blob /master/test/index.js)。 – bredikhin

+0

上記のリンクが壊れています。 –

関連する問題