Проблемы обработки угловой ошибки в модульном тесте - PullRequest
0 голосов
/ 04 октября 2019

Я все еще набираю скорость на Angular. Я искал и нашел очень мало. Наиболее полезными были: Как написать тест, который ожидает появления ошибки в Жасмин?

Вот моя проблема после прочтения вышеупомянутого поста.

Я единицатестирование метода, который выдает ошибку. Я хочу уловить ошибку, чтобы знать, что модульный тест прошел успешно. Вот мой вызов функции:

        expect(function(){instance.selectMember(event);}).toThrow();

и строка, генерирующая ошибку:

        throw new Error('member not found: ' + member.id);

Я получил следующее:

Expected function to throw an Error.

Затем:

Failed: member not found: 42
Error: member not found: 42

Так что это не удалось, потому что он не получил ошибку, но затем отобразил ошибку ???

Я также пытался:

        expect(function(){instance.selectMember(event);}).toThrow(new Error('member not found: 42'));

и

        expect(function(){instance.selectMember(event);}).toThrowError('member not found: 42');

с такими же результатами.

Как узнать, что мой модульный тест правильно вызвал ошибку?

1 Ответ

2 голосов
/ 04 октября 2019

Если ваш метод выполняет некоторую асинхронную работу, то вам следует провести тест по-другому, например, используя fakeAsync и tick(), чтобы заглушить асинхронность.

Если вы обновите свой вопрос с помощью кода метода, я могу дать вам более подробный ответ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...