茉莉花/角测试中的模拟下划线

时间:2018-11-19 09:51:41

标签: angular mocking underscore.js karma-jasmine

在组件中,我具有以下方法:

import _ from 'underscore';


@Component({
 selector: 'hello-selector',
 templateUrl: './hello.component.html'
)}
export class Hello implements OnInit{

  ... 
  public arrayHello(): Array {
    return _.chain(...)
  ...
}
...

ngOnInit(): void {
  myarray = this.arrayHello();
}

角度规格文件中的默认测试用例失败,并显示错误

  

TypeError:无法读取未定义的属性“链”

如何模拟下划线以处理此错误?

我已经尝试了以下方法,但这似乎不是正确的方法:spyOn(_, 'chain').and.callFake((f => f()));

1 个答案:

答案 0 :(得分:0)

您可以为下划线创建模拟对象。

import _ from './test-data/UnderscoreMock';

并使用UnderscoreMock:

./ test-data / UnderscoreMock

export default const _ {
   chain: () => {}
   ....
}

并在组件中设置UnderscoreMock。

第二,您可以将spyOn用作组件。

spyOn(INSTANCE_COMPONENT, "chain");