首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何模拟传递给方法的ElementRef

如何模拟传递给方法的ElementRef
EN

Stack Overflow用户
提问于 2021-06-15 06:46:54
回答 1查看 1.8K关注 0票数 3

我想为接收ElementRef的方法编写一个测试。我没有办法嘲笑ElementRef,有人能帮上忙吗?非常感谢!

exampleService.service.ts:

代码语言:javascript
复制
export class exampleService {
    exampleMethod(elRef: ElementRef): string {
      const elWidth = elRef.nativeElement.offsetWidth;
      return elWidth;
    }
}

testfile.service.spec.ts:

代码语言:javascript
复制
describe('ExampleService', () => {
  let service: ExampleService;
  beforeEach(() => { 
    service = TestBed.inject(ExampleService);
  });

  it('How to mock the ELEMENTREF?', () => {
    expect(service.exampleMethod(ELEMENTREF)).toBe('100');
  });

});

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-15 07:02:41

可以创建具有需要与ElementRef对象一起使用的属性和方法的对象:

代码语言:javascript
复制
const mockElementRef: any = {
  nativeElement: {
    offsetWidth: 100
  }
};


beforeEach(async(() => TestBed.configureTestingModule({
  imports: [ ... ],
  declarations: [ Component ],
  providers: [
    { provide: ElementRef, useValue: mockElementRef }
  ],
  schemas: [ NO_ERRORS_SCHEMA ]
}).compileComponents()));


.......


it('How to mock the ELEMENTREF?', () => {
  expect(service.exampleMethod(mockElementRef)).toBe('100');
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67981275

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档