Javascript测试存根全局变量函数
Javascript testing stub global variable function
我正在为React应用程序编写一些单元测试。
在页眉中,"mixtpanel"跟踪库添加在<script>
标记之间,如下所示:https://mixpanel.com/help/reference/javascript.根据他们的文档,"这个代码片段提供了一个名为mixfanel的全局变量,您可以使用它将数据发送到Mixfanel API。"
在React组件的代码中,Mixpanel的跟踪函数被这样调用:
showModal: function(evt) {
evt.preventDefault()
var modal = this.refs.modal
modal.showModal()
mixpanel.track("Login button clicked")
}
但是,在测试中,由于未定义mixpanel.track
(当调用showModal
时)而导致错误。我已经设置了使用testdom
的测试环境,如下所述:http://willcodefor.beer/react-testing-with-mocha-chai-sinon-and-gulp/在这里http://www.hammerlab.org/2015/02/14/testing-react-web-apps-with-mocha/.
我认为我至少需要模拟track方法,这样测试中就不会出现错误。这是正确的吗?最好的方法是什么?
您可以创建全局对象来模拟它
mixpanel = {
track : fucntion(){}
}
相关文章:
- 在javascript函数中设置全局变量
- 如何从onclick函数设置全局变量并将其传递给另一个JS文件
- 创建要在其他函数中使用的全局变量
- 函数中的innerHTML(全局变量?)
- 全局变量只能由第一个函数访问
- 匿名自执行js函数内部的全局变量在外部仍然可用
- 更改函数内部的全局变量而不调用它
- 如何制作全局javascript函数和变量
- 改进js代码以删除全局变量和函数
- 调用函数后如何重置全局变量
- 无法在函数中检索全局变量的值
- 将全局变量传递给自调用函数或“IIFE”的目的
- 保留 JQuery Vars 用于另一个函数(全局变量?)
- 如何在 ajax 调用后更改包装器 JavaScript 函数中的全局变量
- 删除两个函数使用的全局变量
- 如何将socket.on中函数的值保存为全局变量
- angular/javascript无法识别函数内部的全局变量
- 如何修改函数内部的全局变量
- jQuery-函数全局变量
- JS函数/全局变量的作用域