Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 相关目标jasmine的单元测试用例_Angular_Unit Testing_Jasmine - Fatal编程技术网

Angular 相关目标jasmine的单元测试用例

Angular 相关目标jasmine的单元测试用例,angular,unit-testing,jasmine,Angular,Unit Testing,Jasmine,下面的部分是验证相关目标值的组件 组件技术 onFocusMethod(event) { if(event.relatedTarget && event.relatedTarget.id === 'test-id') { this.newValue = 'new test value'; } } 下面的代码是测试相关目标的规范文件 describe('relatedTarget test', () => { compoenent = fixture.c

下面的部分是验证相关目标值的组件 组件技术

onFocusMethod(event) {
  if(event.relatedTarget && event.relatedTarget.id === 'test-id') {
    this.newValue = 'new test value';
  }
}
下面的代码是测试相关目标的规范文件

describe('relatedTarget test', () => {
  compoenent = fixture.componentInstance;

  it('should have value for property newValue', () {
    const elem = document.createElement("input");
    elem.addEventListener("blue", (event) => {
      component.onFocusMethod(event)
    });
    expect(component.newValue).toBe('new test value');
  })

});

就像
Random
所说的那样,您应该在组件的
dom
中的
focus
元素上触发
input
,但只需使用TypeScript即可进行测试

describe('relatedTarget test', () => {
  component = fixture.componentInstance;

  it('should have value for property newvalue', () => {
    const mockEvent = {
      relatedTarget: {
        id: 'test.id',
      }
    }
    component.onFocusMethod(mockEvent);
    expect(component.newValue).toBe('new test value');
  });
});


您正在
blue
上添加一个侦听器,它应该做什么?如果您想这样做,您必须在
expect
之前触发事件,因此使测试异步以等待事件触发,然后再等待结果…对不起,我的错误不是蓝色,是模糊事件