Jasmine - TypeError: Cannot read properties of undefined (reading 'find') on argument

Jasmine - TypeError: Cannot read properties of undefined (reading 'find') on argument

我在一个方法的参数中使用 .find() 时遇到问题,在另一个方法中:

this.myObject.myArray = [{...},{...}];

public method1(): void {
   method2(this.myObject.myArray);
}

public method2(arrayArg: any[]) {
   arrayArg.find(...)
}

我不知道如何用 spyOn 测试它,我已经在 this.myObject 的 beforeEach 中定义如下:

beforeEach(() => {
    myObjectMock = {
         myArray: []
    },

    ...
};

知道如何告诉 Jasmine 在 method2 arg 中有一个 .find() 方法吗?

编辑:在 Jasmine 中添加了我的测试

it('should ...', () => {
     controller.method1();
     expect(anotherObject).to.equal('another value');
})

谢谢!

编辑:问题不在 Jasmine 中,而是在代码中,如所选答案所述!

谢谢大家!

要使用 find,您首先需要验证数组不是未定义的,并且大小也大于零。

试试这个:

public method2(arrayArg: any[]) {

   if (arrayArg && arrayArg.length > 0) {
      arrayArg.find(...)
   }
   
}