mocha 测试$.ajax 时报错?

发布于 2022-09-02 11:04:04 字数 211 浏览 18 评论 0

报错信息

  _jquery2.default.ajax({
                     ^

TypeError: _jquery2.default.ajax is not a function

如果输出jquery时存在的. 本身应用程序运行也是正常的.只是mocha时会报上面的的错误.


感谢回复.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

沉默的熊 2022-09-09 11:04:04

你需要安装一个 mocha-phantomjs,用mocha在命令行中,他没有 window document 等对象...,所以你安装mocha-phantomjs相当有一个没有界面的浏览器,浏览器相关对象你都可以获取赋值.....

你可以看我这里面怎么写测试用例的https://github.com/JSLite/JSLite

<!DOCTYPE html>
<html>
<head>
    <title>单元测试JSLite</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="../node_modules/mocha/mocha.css" />
</head>
<body>
    <!-- I you use Backbone Model you will need JSON -->
    <div id="mocha"></div>
    <script type="text/javascript" src="../dist/JSLite.js"></script>
    <script type="text/javascript" src="../node_modules/chai/chai.js"></script>
    <script src="../node_modules/mocha/mocha.js" type="text/javascript" ></script>
    <script>mocha.setup('bdd')</script>
    <script src="unit/core.test.js"></script>
    <script src="unit/selectors.test.js"></script>
    <script>
        var expect = chai.expect;
        var assert = chai.assert;
        if (window.mochaPhantomJS) {
            mochaPhantomJS.run();
        } else {
            mocha.run();
        }
    </script>
    <div id="test"></div>
</body>
</html>
浮云落日 2022-09-09 11:04:04

你用 node --debug-brk 调试下 mocha跑的用例吧。我记得好像要引入依赖的外部库。
我没用mocha做过浏览器端的测试,翻了下官方文档,你试试看下面的写法 mocha.globals(['jQuery']);

<html>
<head>
  <meta charset="utf-8">
  <title>Mocha Tests</title>
  <link href="https://cdn.rawgit.com/mochajs/mocha/2.2.5/mocha.css" rel="stylesheet" />
</head>
<body>
  <div id="mocha"></div>

  <script src="https://cdn.rawgit.com/jquery/jquery/2.1.4/dist/jquery.min.js"></script>
  <script src="https://cdn.rawgit.com/Automattic/expect.js/0.3.1/index.js"></script>
  <script src="https://cdn.rawgit.com/mochajs/mocha/2.2.5/mocha.js"></script>

  <script>mocha.setup('bdd')</script>
  <script src="test.array.js"></script>
  <script src="test.object.js"></script>
  <script src="test.xhr.js"></script>
  <script>
    mocha.checkLeaks();
    mocha.globals(['jQuery']);
    mocha.run();
  </script>
</body>
</html>
可爱暴击 2022-09-09 11:04:04

我是在命令行操作的不知为何不行. jquery任何方法都是undefined.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文