Я пытаюсь проверить асинхронную службу $ ресурсов на Angular. Во-первых, обратите внимание, что я не хочу издеваться над $ resource, я действительно хочу получить результаты и протестировать их.
Так что в основном мой метод getCountries использует только ресурс Angular's, чтобы возвращать массив стран.
Метод
getCountries(): any {
var countries = this.$resource(
this.apiEndpoint.baseUrl,
{
'get': {
method: 'GET', isArray: false
}
});
return countries;
}
В моей спецификации у меня возникают проблемы с тем, где запустить метод Жасмин сделал(). Пожалуйста, прочитайте комментарии в коде.
Spec
describe(module',(): void => {
var one;
var SelfRegistrationResourceBuilder;
beforeEach((): void => {
angular.mock.module(
'BuilderModule',
'ngResource'
);
inject(
['Builder', (_SelfRegistrationResourceBuilder _: ISelfRegistrationResourceBuilder): void => {
SelfRegistrationResourceBuilder = _SelfRegistrationResourceBuilder_;
}]);
});
describe('getCountries',(): void => {
beforeEach((done) => { //done is a parameter in beforeEach
SelfRegistrationResourceBuilder.getCountries().get(
(value: any) => {
console.log("no error");
one = "aValue";
done(); //Do I have to call done() here
}, (error: any) => {
console.log("error");
one = "aValue";
//done(); What about here
})
//done(); ..or here
});
it("should...", (done) => {
expect(one).toBe("aValue");
//done(); and here?
});
});
});
Так что моя проблема, кажется, что когда я запускаю мой код, я либо получаю сообщение об ошибке указана в названии этой проблемы, или если я поиграться с какой проделанными() методами I вызов, то моя переменная с именем «один» не определена, поэтому подразумевается, что обратные вызовы с успехом и ошибками никогда не вызывались. Я также могу доказать, что призывы к успеху и ошибкам никогда не вызываются, потому что их console.log() s никогда не печатаются на консоли.
Наконец, , когда я проверяю сетевой раздел инструментов разработчика в своем браузере, я не вижу никаких запросов на сервер. Может кто-то, пожалуйста, попробуй помочь мне здесь, я думаю, что большинство из них выяснилось, кроме вызова done().
Благодаря
спасибо за вашу помощь, но делать это по-прежнему дает мне ту же ошибку, и мой «один» переменная до сих пор не определено – Archmede
, но все это происходит потому, что мои обратные вызовы никогда не дозвонились – Archmede
чтение [это] (HTTP: //stackoverflow.com/questions/30346214/run-angularjs-resource-tests-without-mocking-responses) говорит мне, что это невозможно сделать – Archmede