在Angular 8中,我们可以使用Jasmine来模拟回调函数来测试Promise。下面是一个完整的步骤:
npm install --save-dev jasmine karma
promise.spec.ts
,并在其中导入所需的依赖项:import { TestBed } from '@angular/core/testing';
import { MyService } from './my.service';
describe('MyService', () => {
let service: MyService;
beforeEach(() => {
TestBed.configureTestingModule({});
service = TestBed.inject(MyService);
});
it('should return a resolved promise with the correct value', () => {
const expectedValue = 'Test Value';
// 使用Jasmine的spyOn函数来模拟回调函数
spyOn(service, 'getData').and.returnValue(Promise.resolve(expectedValue));
// 调用被测试的函数
service.getData().then((result) => {
// 断言返回的值是否与预期值相等
expect(result).toEqual(expectedValue);
});
});
});
TestBed.configureTestingModule({})
来配置测试环境。然后,我们使用TestBed.inject(MyService)
来获取我们要测试的服务实例。it
块中,我们使用spyOn
函数来模拟getData
方法的回调函数,并返回一个已解析的Promise对象,其中包含我们预期的值。service.getData()
,并在then
回调函数中进行断言,确保返回的值与预期值相等。这样,我们就可以使用Jasmine来模拟回调函数来测试Promise了。
关于Angular 8和Jasmine的更多信息,你可以参考以下链接:
领取专属 10元无门槛券
手把手带您无忧上云