首页 > 解决方案 > 如何使用 Karma Jasmine "toHaveBeenCalledWith" 一个数组?

问题描述

我有一个像这样的单元测试:

it('should be successful', fakeAsync(() =>
  component.doSomething();
  let myObj = {
    abc: 'test1',
    dfg: 'test2'
  }
  let myArray: Array<AnObject> = [myObj];
  expect(storage.set).toHaveBeenCalledWith('storedThing', myArray);
));

这是被调用的 doSomething 方法:

myArray: Array<AnObject>;

doSomething(): void {
  let myObj = {
    abc: 'test1',
    dfg: 'test2'
  }
  myArray.push(myObj);
  this.storage.set('storedThing', myArray);
}

但是当我运行时,我收到以下错误:

预期的间谍集已使用 ['storedThing', [Object]] 调用,但实际调用为 ['storedThing', Array]。

我究竟做错了什么?

标签: typescriptunit-testingangular7karma-jasmine

解决方案


推荐阅读