使用jasmine.SpyObj-Angular / Jasmine测试服务属性上的可观察对象
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用jasmine.SpyObj-Angular / Jasmine测试服务属性上的可观察对象相关的知识,希望对你有一定的参考价值。
我正在尝试测试绑定到内联属性而不是服务上方法的可观察对象,但是我似乎找不到任何有关如何在SpyObj本身或通过SpyObj返回正确值的示例。 spyOn / SpyOnProperty调用。
// ContentService
readonly content$ = this.http.get('www.testContent.com');
// ParentService
constructor(private readonly contentService: ContentService)
this.loadContent();
// This could return different content dependent on locale for example
loadContent()
this.contentService.content$.subscribe((response)=>
// Handle response
)
// Unit test
let service: ParentService;
let contentServiceSpy: jasmine.SpyObj<ContentService>;
beforeEach(() =>
const spy = jasmine.createSpyObj('ContentService', [],
// Returns cannot read subscribe of undefined
content$: of()
);
TestBed.configureTestingModule(
providers: [
ParentService,
provide: ContentService, useValue: spy
]
);
service = TestBed.get(ParentService);
contentServiceSpy = TestBed.get(ContentService) as jasmine.SpyObj<ContentService>;
);
我已经看到了一些关于将spyOnProperty与get和set方法一起使用的示例,但这不是这里发生的事情,我是在jasmine.SpyObj上错误地声明了它,还是有一种我缺少的特殊jasmine方法来返回content$
中的期望值
我正在尝试测试绑定到内联属性而不是服务上方法的可观察对象,但是我似乎也找不到关于如何返回正确值的任何示例...
答案
在这些情况下,我要向createSpyObj
本身添加一个实例属性。
以上是关于使用jasmine.SpyObj-Angular / Jasmine测试服务属性上的可观察对象的主要内容,如果未能解决你的问题,请参考以下文章
在使用加载数据流步骤的猪中,使用(使用 PigStorage)和不使用它有啥区别?
Qt静态编译时使用OpenSSL有三种方式(不使用,动态使用,静态使用,默认是动态使用)