2016-12-28 13 views
0

こんにちは私の流星メソッドのテストを作成しようとしています。だから私は、サーバーのフォルダに、私は次のエラーを持っているが、私はこれが何であるかわからないテストではエラー:一致エラー:予想されるオブジェクト、テストで文字列がありました

import { Meteor } from 'meteor/meteor' 

Meteor.methods({ 
    'createUser': function (email, password) { 
    var userObject = { 
     email, 
     password 
    } 

    Accounts.createUser(userObject) 
    } 
}) 

そしてaccountsMethods.tests.js

import { Meteor } from 'meteor/meteor' 
import { resetDatabase } from 'meteor/xolvio:cleaner' 
import { Random } from 'meteor/random' 
import should from 'should' 

describe('accountsMethods', function() { 
    beforeEach(function() { 
    resetDatabase() 
    }) 

    it('Creates User', function() { 
    const createUser = Meteor.server.method_handlers['createUser'] 
    const email = '[email protected]' 
    const password = '12345' 
    const userId = Random.id() 
    createUser.apply({ userId }, [email, password]) 
    should(Meteor.users.find({}).count()).be.exactly(1) 
    }) 
}) 

でファイルaccountsMethods.jsを作成しました。

Error: Match error: Expected object, got string 
    at exports.check (packages/check.js:57:15) 
    at packages/accounts-password/password_server.js:1033:7 
    at tryLoginMethod (packages/accounts-base/accounts_server.js:248:14) 
    at AccountsServer.Ap._loginMethod (packages/accounts-base/accounts_server.js:381:5) 
    at Object.createUser (packages/accounts-password/password_server.js:1026:19) 
    at Test.<anonymous> (server/accountsMethods.tests.js:15:16) 
    at run (packages/practicalmeteor:mocha-core/server.js:34:29) 
    at Context.wrappedFunction (packages/practicalmeteor:mocha-core/server.js:63:33) 

// 11 
    var createUser = Meteor.server.method_handlers['createUser']; // 12 
    var email = '[email protected]';         // 13 
    var password = '12345';           // 14 
    var userId = Random.id();          // 15 
    createUser.apply({ userId: userId }, [email, password]);   // 16 
    should(Meteor.users.find({}).count()).be.exactly(1);    // 17 

答えて

0

expects an object(ただし、チェックはコールバックで実行されますが)、2つの文字列を指定したためです。

これはです。サードパーティのメソッドを呼び出す推奨方法ではありません。より適切な方法については、this answerを参照してください。あなたが直接メソッドハンドラを呼び出すことを主張した場合

、単一のオブジェクトパラメータの代わりに、2つの文字列パラメータを持つハンドラを呼び出す代わりに

createUser.apply({ userId }, [{email, password}]);   

、使用しています。

関連する問題