首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何处理角度组件单元测试中的bootstrap-daterangepicker?

如何处理角度组件单元测试中的bootstrap-daterangepicker?
EN

Stack Overflow用户
提问于 2019-04-18 15:46:39
回答 1查看 163关注 0票数 2

我正在尝试编写angular 6组件的单元测试,它初始化ngAfterViewInit()方法中的bootstrap-daterangepicker。当我运行我的单元测试时,它给出了以下错误:

TypeError:$(...).daterangepicker不是函数

这是来自实际组件(EmployeeComponent)的代码:

代码语言:javascript
复制
ngAfterViewInit(): void {
    this.initializeDatePicker(this);
  }

initializeDatePicker(that: any) {
    const start = moment().subtract(7, 'days');
    const end = moment();

    $('#reportrange').daterangepicker({
      startDate: start,
      endDate: end,
      maxDate: moment(),
      ranges: {
        'Today': [moment(), moment()],
        'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')]
      }
    }, cb);
    cb(start, end);
  }

这是我的测试类中的代码:

代码语言:javascript
复制
        describe('EmployeeComponent', () => {
  let component: EmployeeComponent;
  let fixture: ComponentFixture<EmployeeComponent>;
  let messageService: NotificationService;
  beforeEach(async(() => {
    TestBed.configureTestingModule({
      declarations: [EmployeeComponent]
    })
      .overrideComponent(EmployeeComponent, {
        set: {
          template: '',
          providers: [
            { provide: NotificationService, useValue: messageService },
            { provide: ActivatedRoute, useValue: { queryParams: of({ emp: "123" }) } }
          ]
        }
      })
      .compileComponents();
  }));

  beforeEach(() => {
    fixture = TestBed.createComponent(EmployeeComponent);
    component = fixture.componentInstance;
    fixture.detectChanges();
  });

  it('should create', () => {
    expect(component).toBeTruthy();
  });
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-22 12:58:50

你不需要在你的测试用例中处理它。该组件应该在单独的服务中初始化,您可以简单地从服务中模拟该方法。这样你就可以避免这个错误。

假设您将initializeDatePicker()的所有代码移动到某个服务的方法中,比如common-service.ts,您可以简单地从该方法调用该服务,如下所示

代码语言:javascript
复制
this.commonServiceObj.initializeDatePicker();

现在,完成此操作后,您可以简单地从服务对象模拟initializeDatePicker(),这样错误就会消失。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55741361

复制
相关文章

相似问题

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