热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何确定OnsenUI组件是否在单元测试中被编译

如何解决《如何确定OnsenUI组件是否在单元测试中被编译》经验,求助如何解决?

我的项目是使用vue-cordova-webpack模板构建的。我创建了一个vue组件。v-ons-input我组件的模板内有。我需要v-ons-input在组件的单​​元测试期间更改的值。我只能做后它ons-input被编译,因为编译后,才ons-input具有input内部(见约OnsenUI组件编译)。问题是编译是异步执行的,当OnsenUI组件准备就绪时,我找不到任何“合法”方式来捕获事件。

我该怎么办?我创建了一个内部方法兴农间谍_compileons-input,等到它被称为:

it('test', (done) => {
   const wrapper = mount(myVueComponent)

   // here I can't set a value for ons-input

   var spy = sinon.spy(wrapper.find('ons-input').element, '_compile')

   function waitForCall(spy) {
     return new Promise(function (resolve, reject) {
       (function wait() {
         if (spy.called) {
           return resolve()
         }
         setTimeout(wait, 10)
       })()
     })
   }

   waitForCall(spy).then(function () {
     // now ons-input is compiled and I can set a value for ons-input
     wrapper.find('ons-input').element.value = 'foo'
     ...
   }).then(done, done)
 })

是否有更多“干净”的方法来确定OnsenUI组件已准备好用于单元测试(无需使用该组件的内部方法进行操作)?

PS我知道不适合测试环境的方法-监听init事件document(请参阅此处),但是在单元测试中不起作用。


推荐阅读
author-avatar
Mr-o蛋挞
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有