在我的Angular服务中,我有一个属性 myPropertyOne: Observable<string>
我想用jasmine.createSpyObj方法来模拟这个属性,所以,我试着用下面的方法来进行监视。
const myServiceSpy: jasmine.SpyObj<myService> = jasmine.createSpyObj('myService', ['myMethodOne'], ['myPropertyOne'])
我想为我的spied属性'myPropertyOne'设置值。另外,这个值应该为不同的测试规格而改变。Appreciate if someone can suggest on this.
注:我试着查看了其他线程,但没有得到关于如何使用createSpyObj设置和获取属性值的清晰概念。
最后,我尝试了下面的方法,结果成功了。
const mySubject: ReplaySubject<string> = new ReplaySubject<string>(1)
const myServiceSpy: jasmine.SpyObj<myService> = jasmine.createSpyObj('myService', ['myMethodOne'], ['myPropertyOne': {mySubject}])
有了这个,在我的测试规格中,我在我的主题中设置了如下的字符串。
describe('my component', () => {
it('some test check', () => {
mySubject.next('some value')
fixture.detectChanges()
// some assertion
})
})