Ale*_*ann 5 vue.js jestjs vuejs2 vue-test-utils
我使用 Vue 2、vue-test-utils、jest
上传图片的插件是vue-croppa。
import Croppa from 'vue-croppa'
Vue.use(Croppa, { componentName: 'image-croppa' })
Run Code Online (Sandbox Code Playgroud)
它通过 v-model 安装到我的组件上。然后我可以调用它的一些方法。
模板
<image-croppa v-model="myCroppa" ...>
Run Code Online (Sandbox Code Playgroud)
脚本
data() {
return {
myCroppa: {},
}
},
Run Code Online (Sandbox Code Playgroud)
我还有一些调用 vue-croppa 方法的方法。
handlePicture(){
const dataUri = this.myCroppa.generateDataUrl()
this.$emit('got-image', dataUri)
},
Run Code Online (Sandbox Code Playgroud)
我想测试我的方法调用 vue-croppa 方法。
问题是:
在测试中初始化我的组件时,如何模拟这个插件?并且是否需要测试这种行为?
旁注:你的设置让我有点困惑。为什么myCroppa声明为数据元素?vue-croppa插件不是负责注入吗this.myCroppa?我想两者兼而有之可能会引起问题。
无论如何,您可以mocks在测试中实例化组件时传递一个选项:
const mockCroppa = {
get() => '/fake-url'
}
mount(MyComponent, {
mocks: {
myCroppa: mockCroppa
}
}
Run Code Online (Sandbox Code Playgroud)
来源: https: //vue-test-utils.vuejs.org/guides/#mocking-injections
对于第二个问题,IMO 值得测试dataUri当组件上的事件或类似事件handlePicture触发回调时是否正确发出事件。在您的测试中click触发该 via并断言它应该是这样的。wrapper.trigger(...)wrapper.emitted()['got-image']
| 归档时间: |
|
| 查看次数: |
4008 次 |
| 最近记录: |