如何在angular中使用jasmine createSpyObj方法设置属性?

问题描述 投票:0回答:1

在我的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设置和获取属性值的清晰概念。

angular karma-jasmine angular-testing
1个回答
0
投票

最后,我尝试了下面的方法,结果成功了。

  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
    })
})
© www.soinside.com 2019 - 2024. All rights reserved.