gpt4 book ai didi

angular - 如何将完成的回调与注入(inject) Angular 2单元测试结合起来

转载 作者:太空狗 更新时间:2023-10-29 17:16:26 25 4
gpt4 key购买 nike

我喜欢在进行单元测试时传入完成回调的功能,以明确控制单元测试何时被视为完成。谁能解释一下在使用 Angular 2 时如何将其与依赖注入(inject)相结合?

更多背景知识:

带有回调函数的普通单元测试如下所示:

it('should work with done', (done: Function) => {
setTimeout(() => {
a.test();
}, 1000);
a.test = () => {
console.log('zweiter test');
expect(true).toBeFalsy();
done();
};

angular 2 框架生成的单元测试使用注入(inject),如下所示:

  it('should be defined', inject([TxparserService], (service: TxparserService) => {
expect(service).toBeTruthy();
}));

我想同时使用回调函数和依赖注入(inject)。看起来怎么样?

最佳答案

不确定是否可以。不过就我个人而言,出于以下几个原因,我停止使用这种注入(inject)方式:1. 它非常冗长,以及 2. 您需要为每个测试用例不断重复它。其他几个选项是:

  • 使用beforeEach

    let service: TxparserService;

    beforeEach(() => { // configure });

    beforeEach(inject([TxperserverService], (svc: TxparserService) => {
    service = svc;
    }));
  • 对我来说,上面的beforeEach,仍然打破了我对冗长的第一个担忧,所以我现在就这样做

    let service: TxparserService;

    beforeEach(() => {
    TestBed.configureTestingModule({
    providers: [ TxparserService ]
    });

    service = TestBed.get(TxparserService);
    });

关于angular - 如何将完成的回调与注入(inject) Angular 2单元测试结合起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42046855/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com