Почему мой первый тест проходит успешно, а остальные не проходят? - PullRequest
0 голосов
/ 23 апреля 2020

У меня есть следующие тесты, написанные для услуги AngularJS. Когда я запускаю их все сразу, первый тест, 'should exist', проходит, но остальные терпят неудачу со следующей ошибкой:

Error: [$injector:unpr] Unknown provider: aProcessorProvider <- aProcessor

Мои тесты:

describe('MyService', () => {
    let a: any, b: any, c: any;

    beforeEach(angular.mock.module('myModule'));

    beforeEach(inject( (_a_, _b_) => {
        a = _a_;
        b = _b_;
        c = b.getProperty('foo');
    }));

    afterEach( () => {
        a = null;
        b = null;
        c = null;
    });

    //passes
    it('should exist', () => {
        expect(a).toBeDefined();
        expect(b).toBeDefined();
        expect(c).toBeDefined();
    });

    //all fail
    describe('when something happens', () => {
        it('should be a frog', () => {
            let isFrog: boolean = a.isFrog();
            expect(isFrog).toBeTruthy();
        });

        it('should not be a moose', () => {
            let isMoose: boolean = b.isMoose();
            expect(isMoose).toBeFalsy();
        });

        it('should have no soul', () => {
            let soul: any = c.getSoul();
            expect(soul).toBeNull();
        });
    });

});

Когда я Запустите эти тесты по отдельности, они пройдут, но когда я запустил их все сразу, последние три не пройдут. Кто-нибудь знает, почему это происходит?

1 Ответ

0 голосов
/ 23 апреля 2020

Вам нужно заключить вызов в angular.mock.module() в функции, чтобы он выполнялся перед каждым тестом:

beforeEach(() => {
    angular.mock.module('myModule');
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...