当我尝试测试已安装方法的组件时:
mounted(){
this.search()
}
methods:{
async search(){
try{
await axios.something
console.log("not executed only when shallowMount")
}catch{}
}
}
我检查了它返回 Promise
我是这样写测试的:
wrapper = await shallowMount(Component, {
localVue
});
await wrapper.vm.search()// this works perfectly
然而,只有shallowMount 显然跳过了等待的函数,而下一行完美运行。
我不知道这种行为。
我该如何解决?
编辑:
我也使用 Mirage.js 来模拟响应。
function deviceServer() {
return createServer({
environment: "test",
serializers: {
device: deviceListSerializer()
},
models: {
device: Model
},
fixtures: {
devices: devices
},
routes() {
this.namespace = "/api/v1/";
this.resource("device");
},
seeds(server) {
server.loadFixtures("devices");
}
});
}
答案 0 :(得分:0)
p
没有返回 shallowMount
,这就是为什么没有什么可等待的。要在测试中等待承诺,请尝试使用 flush-promises 库。使用 Promise
,您的测试将如下所示:
flushPromises