【发布时间】:2021-03-08 07:51:40
【问题描述】:
假设我有一个执行很长计算的函数:
export const veryLongCalculation = () => 1 + 1;
如何在 Angular 打开 Karma 和 配置其他任何东西的情况下对这个函数进行单元测试?
我想写一个这样的测试:
describe('Difficult Calculations', () => {
it('should calculate', () => {
const calcul = veryLongCalculation();
expect(calcul).toBe(2);
});
})
如果我运行ng test,它会启动 Karma 和浏览器(并且需要很长时间)。
我可以在不打开浏览器并初始化所有内容的情况下运行该测试吗?我想应该有一个命令来做到这一点,已经配置好了。怎么样?
【问题讨论】:
-
尚未配置执行此操作的命令。 Angular CLI 的配置用于测试前端应用,而 Karma 是基于浏览器的测试运行器。
-
那么,如果我想测试一个简单的功能,我必须从头开始配置 jasmine(或其他任何东西)?
-
是的,您的用例不在 CLI 的默认设置中。
-
尽量避免使用 karma runner。原因是 karma 使用真正的浏览器来运行测试,而 jest 使用最喜欢的命令行来运行它的测试。在 KARMA 上花费 4 到 5 分钟的测试只需要 1 到 2 分钟。
标签: angular typescript unit-testing jasmine