Angular 2 单元测试:找不到名称“描述”

新手上路,请多包涵

我正在 学习 angular.io 的本教程

正如他们所说,我创建了 hero.spec.ts 文件来创建单元测试:

 import { Hero } from './hero';
describe('Hero', () => {
  it('has name', () => {
    let hero: Hero = {id: 1, name: 'Super Cat'};
    expect(hero.name).toEqual('Super Cat');
  });
  it('has id', () => {
    let hero: Hero = {id: 1, name: 'Super Cat'};
    expect(hero.id).toEqual(1);
  });
});

单元测试就像一个魅力。问题是:我看到一些错误,在教程中提到:

我们的编辑和编译器可能会抱怨他们不知道 itexpect 是因为他们缺少描述 Jasmine 的打字文件。我们现在可以忽略那些烦人的抱怨,因为它们是无害的。

他们确实忽略了它。尽管这些错误是无害的,但当我收到一堆错误时,它在我的输出控制台中看起来并不好。

我得到的示例:

找不到名称“描述”。

找不到名称“它”。

找不到名称“期望”。

我能做些什么来修复它?

原文由 Piotrek 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 718
2 个回答

我希望你已经安装 -

 npm install --save-dev @types/jasmine

然后将以下导入放在 hero.spec.ts 文件的顶部 -

 import 'jasmine';

它应该可以解决问题。

原文由 ksharifbd 发布,翻译遵循 CC BY-SA 4.0 许可协议

就我而言,它抛出了类似的错误“找不到’of’的名称。”使用以下代码时:

 it('should return valid values of look up', () => {
    let lookupResponse= new Map<string, string>();
    lookupResponse.set("1", "location1");
    lookupResponse.set("2", "location2");

    let response;
    spyOn(service, 'getLookup').and.returnValue(of(lookupResponse) as any);

      service.getLookup().subscribe(res => {
        response = res;
      });

      expect(response).toEqual(lookupResponse);
      expect(response.length).toBeGreaterThan(0);
  });

导入以下行后,它起作用了:

 import { of } from 'rxjs';

如果您使用的是 Visual Studio,那么您可以通过检查错误代码行中的灯泡符号来找到解决方案,然后单击它或点击“ctrl+”。

原文由 Elias 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进