在Win10.64中,我在命令行上运行了预期结果的测试:
>mocha test
Array
#indexOf()
√ should return -1 when the value is not present
1 passing (16ms)
但在Chrome中,控制台错误是:未捕获的ReferenceError:未定义require(匿名函数)@ test.lead-helper.js:1
test.lead-helper.js:
var assert = require("assert");
describe('Array', function() {
describe('#indexOf()', function () {
it('should return -1 when the value is not present', function () {
assert.equal(-1, [1,2,3].indexOf(5));
assert.equal(-1, [1,2,3].indexOf(0));
});
});
});
和HTML测试运行器:
<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>
<div id="messages"></div>
<div id="fixtures"></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 src="https://cdnjs.cloudflare.com/ajax/libs/chai/3.3.0/chai.js"></script>
<script src="lead-helper.js"></script>
<script>mocha.setup('bdd')</script>
<script src="test/test.lead-helper.js"></script>
<script>
mocha.checkLeaks();
mocha.globals(['jQuery']);
mocha.run();
</script>
</body>
</html>
答案 0 :(得分:2)
您的代码似乎是在交叉使用。你加载柴:
<script src="https://cdnjs.cloudflare.com/ajax/libs/chai/3.3.0/chai.js"></script>
这是一个功能齐全的断言库,但您使用require("assert")
,这似乎是尝试将Node assert
库加载到您的浏览器中。可能有一种方法可以通过使用Browserify来加载它,但我不知道为什么你这样做,因为你已经加载了Chai,并且没有迹象表明你的其余代码需要Browserify 。
我只是删除了require
来电,而是:
var assert = chai.assert;
答案 1 :(得分:1)
这是因为默认情况下浏览器环境中没有require()
方法,因此您必须在脚本修改中进行一些更改。你可以采取一些方法:
<script>
标记。