Доброе утро,Тестирование параметров метода на заводе
Я пытаюсь проверить значения некоторых полей метода, определенного в заводу AngularJS в.
Мой код выглядит следующим образом:
'use strict';
services.factory('toto', ['$resource', function ($resource) {
return $resource('abc',
{},
{
method1: {
method: 'POST',
url: 'urlXYZ'
}
})
}]);
Я хотел бы проверить значение метода и URL в method1.
Я пробовал много вещей, но никто не в порядке:
beforeEach(function(){
module('myApp');
});
describe('tests', function() {
var toto;
beforeEach(function() {
inject(function (_toto_) {
toto = _toto_;
});
});
// check to see if it has the expected function
describe('toto service has the expected properties', function() {
it('should have a method1 function', function() {
expect(angular.isFunction(toto.method1)).toBe(true);
});
it('should have a method1 function with the field method defined', function() {
expect(toto.method1.url).toBeDefined();
});
});
});
Он только говорит мне, что "Ожидаемые неопределенными быть определены." для второго теста.
Есть ли у вас какие-либо представления о том, как я мог бы сделать все, что захочу?
EDIT: Я не уверен, что был очень понятен ... Что я хочу сделать, это проверить значения параметров url и метода метода1, чтобы узнать, не изменил ли кто-то их по ошибке.
EDIT 2: Вот решение с помощью qwetty.
it('should perform POST request to the expected url', function() {
$httpBackend
.expectPOST('the expected url')
.respond({});
toto.paginate();
$httpBackend.flush();
});
Ваше решение работает, но не так, как я хочу ... Я хочу проверить значение параметров url и метода. В вашем решении я могу установить то, что хочу, как «ожидаемый url» или даже использовать метод «ожидатьGET» вместо «expectPOST», тест в порядке. – Marine
В тесте я написал контрольное значение параметра 'url' в методе' method1'. – qwetty
CD .. Если вы измените (в будущем) значение параметра url, тест завершится с ошибкой. То же самое относится к имени метода. Различное имя не будет выполнять запрос, и 'expectPOST' не будет сопоставлен, и он вызовет ошибку. Таким образом, оба url и метода полностью протестированы в одном/малом/читаемом тесте. – qwetty