【发布时间】:2020-01-02 21:15:16
【问题描述】:
我正在尝试编写一个测试来检查是否存在使用 Jasmine for Angular 应用程序的路由:
import { routes } from './app-routing.module';
import { UsersComponent } from './users/users.component';
describe('routes', () => {
it('should contain route for /users', () => {
const expectedRoute = { path: 'users', component: UsersComponent };
expect(routes).toContain(expectedRoute);
});
});
但测试失败(可能是因为 Javascript How object equality checks work in Javascript? 中的对象相等)
如何修改测试以使其工作?
【问题讨论】:
-
我不会在单元测试中测试这个。如果整个页面都丢失了,您应该很快从 E2E 测试中找出答案。
-
单元测试很快,当路由名称拼写错误或路由指向的组件不是预期的组件时,它们会指出来。我知道维护这样的测试会因为它改变的可能性而变得更加困难,但在我的情况下这是值得的。
-
他们会,但这只是变更检测。也许你想改变路由或者组件,现在你每次都要改变单元测试。 是什么 路线并不重要,重要的是其他组件是否导航到正确的位置,这个单元测试无法告诉你。这就是为什么我认为在其他级别上进行更好的测试。
-
我想我喜欢同时拥有变化检测快速单元测试和检测路由错误配置的 e2e 测试的想法。
标签: angular unit-testing jasmine integration-testing angular2-routing