【发布时间】:2019-11-21 11:18:00
【问题描述】:
这是一个关于 spyOn 的相当普遍的问题,当使用在 Vue 组件中返回 Promise 的函数编写单元测试时。
我写测试的方式如下:
// Basically this function gets data from a service and sets some data in the component.
function getSomething() {
ServiceX.getSomething().then(response =>
this.x = response.x
)
}
测试:
describe('test', () => {
beforeEach() => {
vm = shallowMount(VueComponent)
spyOn(serviceX, 'getSomething).and.returnValue(promsie.resolve(data));
}
it('should set X', () =>{
vm.getSomething()
expect(vm.X).toBe(X);
})
}
问题是,当我以这种方式进行测试时,变量 X 尚未设置,但如果我执行“it”语句异步并等待 getSomething() 方法,它就可以工作。
我想知道是否有其他方法可以做到这一点。
【问题讨论】:
标签: unit-testing vue.js jasmine spy