在组件方法中创建的对象的TypeScript测试属性

时间:2019-02-11 12:02:19

标签: angular typescript karma-jasmine

我想测试一种组件方法。 我想检查在该方法中创建的对象,并将其传递给另一个方法。

我有一个组件,其方法描述如下:

submit() {

    const goal= new Goal();
    if(component.property == true){
        goal.myProperty ='reached';
    } else { 
        goal.myProperty =' not reached';

    create(goal);
}

我想检查一下goal.myProperty属性,因为它已被传递给create()方法。

2 个答案:

答案 0 :(得分:1)

为了实现这一点,您将不得不监视您的方法,并查看用于调用的参数。您将必须测试参数属性。

这里是一个示例:

it('should XXX', () => {
  const spy = spyOn(YourImportThatContainsCreate, 'create');
  component.submit();
  epxect(spy.calls.argsFor(0)[1].myProperty).toEqual('reached');
});

答案 1 :(得分:0)

尝试此代码:

it('should submit', () => {
  spyOn(component, 'create');
  component.submit();
  expect(component.create).toHaveBeenCalledWith(jasmine.objectContaining(myProperty : 'reached'));
})

对不起,我还没有尝试过。