具有可选属性的茉莉花测试对象

时间:2018-09-26 12:29:44

标签: angular typescript jasmine karma-jasmine

我有一个具有可选属性的接口IData。

interface IData {
 prop1: string,
 prop2?: string
}
setObj(){
  prop1 = 'abc';
  prop2 = 'xyz';
  let obj1 : IData = {
                       prop1: this.prop1,
                       prop2: this.prop2
                     }
}

unitTesting obj1的期望值时引发错误

expect(obj1).toEqual({
                prop1: 'abc',
                prop2: 'xyz' })

类型'{prop1:string; prop2:字符串;}'不能分配给'Expected

类型的参数

1 个答案:

答案 0 :(得分:0)

检查每个单独的属性,而不是整个对象

expect(obj1.prop1).toEqual('abc')
expect(obj1.prop2).toEqual('xyz')

还可以使用objectContaining比较部分对象。

expect(obj1).objectContaining({
            prop1: 'abc',
            prop2: 'xyz' })