Javascript测试存根全局变量函数

Javascript testing stub global variable function

本文关键字:函数 全局变量 存根 测试 Javascript      更新时间:2023-09-26

我正在为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(){}
}