2014-10-26 2 views
0

Я подключаю тестовые примеры жасмина для одного из приложений. Я только начал изучать жасмин. Ниже мой код сценарияJasmine spyOn объект аргумента функции, поскольку переменные не определены

var aclChecker = function(app,config) { 

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

} 

Теперь я хочу spyOn res и req объекта знать, если метод отправки был вызван. Как REQ и разрешение не является глобальным переменным я имею это сомнение о том, как создать шпионить в JUnit спецификации

Пожалуйста, помогите !!!!!!!!

ответ

1

Вы можете просто издеваются req и res подобное.

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'); 
    }); 
    }); 
+0

спасибо за ваш ответ !!! .. –

1

Как правило, в модульном тесте вы будете издеваться над любыми запросами на ресурсы и только подтверждать правильность запроса. Поэтому вместо этого вы должны называть библиотеку запросов и проверить правильность URL-адреса и заголовков.

Однако, если вы действительно хотите проверить фактический доступ к ресурсу, вам сначала нужно будет создать свой объект запроса и предоставить себе доступ к нему.

Если вы хотите узнать о просьбе насмешках, проверить жасмин-Аякс: https://github.com/pivotal/jasmine-ajax

Если вы все еще хотите сделать это, вы должны использовать функцию beforeEach в тестовом файле для создания зависимостей, необходимые для ваши тесты.

Взгляните на это для получения дополнительной помощи с beforeEach: https://github.com/pivotal/jasmine/wiki/Before-and-After

 Смежные вопросы

  • Нет связанных вопросов^_^