0

アプリケーションの1つにジャスミンテストケースを配線しています。ジャスミンを習い始めました。以下は私のスクリプトコードです

var aclChecker = function(app,config) {

    validateResourceAccess = function (req, res, next) {
            req.callanotherMethod();
            res.send(401,'this is aerror message');
   }

}

ここで、spyOnresreqオブジェクトを使用して、send メソッドが呼び出されたかどうかを知りたいと考えています。 req と res はグローバル変数ではないため、junit 仕様でスパイを作成する方法に疑問を持っています

助けてください!!!!!!!!

4

2 に答える 2

4

あなたは単に嘲笑してこれreqres好きにすることができます。

  describe("acl checker", function() {
    it("should validate resource access", function() {
      var mockReq = {
          callAnotherMethod: function() {}
      };
      var mockRes = {
        send: function() {}
      };
      var mockNext = {};
      spyOn(mockReq, "callAnotherMethod");
      spyOn(mockRes, "send");

      aclChecker.validateResourceAccess(mockReq, mockRes, mockNext);
      expect(req.callAnotherMethod).toHaveBeenCalled();
      expect(res.send).toHaveBeenCalledWith(401, 'this is aerror message');
    });
  });
于 2015-01-30T06:43:27.473 に答える
1

通常、単体テストでは、リソース リクエストをモックし、リクエストが適切であることのみを検証します。したがって、代わりにモック リクエスト ライブラリを呼び出して、URL とヘッダーが正しいことを検証します。

ただし、リソースへの実際のアクセスを本当にテストしたい場合は、最初にリクエスト オブジェクトを作成し、その後で自分自身にアクセス権を付与する必要があります。

リクエストのモックについて知りたい場合は、jasmine-ajax をチェックしてください: https://github.com/pivotal/jasmine-ajax

それでもこれを行いたい場合は、テスト ファイルで beforeEach 関数を使用して、テストに必要な依存関係を作成する必要があります。

beforeEach の詳細については、こちらをご覧ください: https://github.com/pivotal/jasmine/wiki/Before-and-After

于 2014-10-26T19:31:47.083 に答える