javascript - 用 Angular 测试服务的理想方法是什么?
问题描述
我是角度测试的新手,我想为我的服务创建测试。
问题是我的服务(foo)在其构造函数中注入了另一个服务(bar)。
所以我应该创建一个模拟吧?模拟酒吧内的每个功能?如果是这样,我需要为我导入的每个包都这样做吗?把我自己的函数写成模拟?
解决方案
您可以创建模拟/存根或使用 jasmine 间谍。
export const jobServiceStub: Partial<JobService> = {
getUser() {
return {};
}
}
describe('SampleService', () => {
let service: SampleService;
beforeEach(() => {
TestBed.configureTestingModule({
providers: [
//replacing service with stub
{ provide: JobService, useValue: jobServiceStub },
UtilityService
]
});
service = TestBed.inject(SampleService);
});
it('should get all data', () => {
const utilityService = TestBed.inject(UtilityService);
const spy = spyOn(utilityService, 'getValues').and.returnValue(2);
});
});
推荐阅读
- c++ - 超出 C++ 的界限和未定义的行为
- javascript - 在 Javascript 上填充数据 Calendar AdminLte
- docker - Tomcat docker容器:在webapp目录中找不到`manager`
- swift - Firebase Crashlogs 让我误入歧途(iOS 崩溃日志)
- angular - 如何在 Angular DataTable 中显示按钮列?
- azure - 在 Azure Pipelines 上使用空手道进行 API 测试
- c# - 我可以在泛型中访问抽象类的静态成员吗?
- database - 如何将包含 JSON 的 CSV 文件导入 postgresql?
- google-earth-engine - 日期作为 GEE 上矢量格式的过滤器
- excel - 我在 excel 的宏 vba 脚本中收到运行时错误 1004