首先,我想解释一下我有一个 Vue 组件存储库,它负责显示从 http 服务检索到的数据。与组件本身管理每个实例的相同数据检索并通过网络请求向客户端发送垃圾邮件不同,我设法找到了一种解决方案,该解决方案允许将另一个组件直接安装到根目录(我称之为“服务”)由于它与 Angular 的相似性)来管理这些组件需要的数据。这很好用,其他组件可以通过 Vue.prototype (via this.$TestService.value
) 访问它。它有一些警告,但在大多数情况下,它完全符合我的需要。这可能并不常见,但那些使用 Vuex 的人使用的是类似的方法,我不想使用 store 范例。
我制作了一个非常简单的 Vue JsFiddle 来展示这一点......
https://jsfiddle.net/spronkets/8v31tcfd/18
现在,重点...我正在使用@testing-library/vue
、@vue/test-utils
和 Jest 来测试组件并获得测试覆盖率,现在由于在测试执行期间 Vue.prototype 上不存在该服务,我在运行测试时会遇到错误。我不想模拟“服务”层的功能,那么有没有人有测试这些根安装组件的解决方案?我已经尝试手动导出服务(卸载和挂载)并将它们包含在模拟部分以及将文件直接导入到测试文件中,但是当组件尝试检索值时“服务”始终未定义并且仅在测试执行期间...
我还创建了一个简单的存储库,以我在下面使用的 Vue 组件存储库为模型...
https://github.com/kcrossman/VueServiceExample
首先,克隆 repo 并遵循 repo 中包含的 README.md。谢谢!