1

モカをテストフレームワークとして使用しているノードアプリケーションのテストケースを作成しようとしています。

test.js

var register = require('../routes/users');
var request = require('request');
var baseUrl = 'http://localhost:5000';

describe('registerUser()', function() {

    it('check email is already registered', function (done) {
        request.post({uri:baseUrl+'/register', form :{
            username: 'test',
            email: 'test@test.com'
        }}, function (e, res, body) {
            res.should.have.property('statusCode', 201);
            res.should.have.property('regErr', 'This email is already taken!');
        })
    });

})

は、レンダリング時regErrに関数のパラメーターとして指定されます。registerUserパラメータregErrが応答のプロパティとして設定され、テストで取得できると予想しました。github で私のregisterUser 関数を確認してください。この関数のテスト ケースを作成しようとしています。

regErr上記のコードには、テスト ケースでフェッチされた応答で呼び出されるプロパティがありません。

レンダリング パラメータもプロパティに応答するように修正するにはどうすればよいですか?

これを取得するには、実際の関数を変更する必要がありregisterUserますか? もしそうなら、どうすればこれを達成できますか?

4

1 に答える 1

0

HTTP リクエストを実行するとき、コールバック関数が 3 つの引数で呼び出されます。

  • err (エラーが返される可能性があります)
  • res (HTTPRequest オブジェクト)
  • body (結果のbodyのバッファ)

したがって、regErr は body 変数にあります。また、HTML ページをレンダリングしているので、本文を自分で解析して見つける必要があります。可能な解決策は、JSON をレンダリングし、結果の本文バッファーで JSON.parse() を使用することです。

于 2013-04-04T15:27:22.937 に答える