如何在 Angular 2 Jasmine 中测试模型类型

mel*_*ant 4 jasmine angular

我们要测试服务方法的返回类型。假设 GetItems() 返回一个 Items 数组。

我们无法弄清楚如何对此进行测试。如果我们这样做:

expect(service.getNavItems()).toEqual(jasmine.any(Array));
Run Code Online (Sandbox Code Playgroud)

它过去了……但是如果我们这样做

expect(service.getNavItems()).toEqual(jasmine.any(Item[]));
Run Code Online (Sandbox Code Playgroud)

必须有一种简单的方法来测试返回类型(不是内置的,例如 Number 或 Array)。

谢谢。米

小智 5

// Model
export class SomeModel {
  constructor(
    public name: string = "") { }
}

// Spec
it('Should return SomeModel[]', () => {
  const items = service.getItems();

  items.forEach(item => {
    expect(item instanceof SomeModel).toBe(true, 'instance of SomeModel');
  });
});
Run Code Online (Sandbox Code Playgroud)