Chai 间谍不在浏览器上工作
Chai spies not working on Browser
我正在尝试在浏览器上使用 chai spies 和 mocha 运行,但有些东西不起作用。
使用此 html 配置:
<html>
<head>
<meta charset="utf-8">
<title>Mocha Tests</title>
<link rel="stylesheet" href="./node_modules/mocha/mocha.css" />
</head>
<body>
<div id="mocha"></div>
<script src="./node_modules/mocha/mocha.js"></script>
<script src="./node_modules/chai/chai.js"></script>
<script src="./node_modules/chai-spies/chai-spies.js"></script>
<script>
mocha.setup('bdd')
mocha.reporter('html');
var expect = chai.expect;
</script>
<script src="./test.js"></script>
<script>
if (navigator.userAgent.indexOf('PhantomJS') < 0) {
mocha.run();
}
</script>
</body>
</html>
以及这个测试文件:
describe("test spies", function () {
it("are worning", function () {
function myFunction () {
console.log("Hello");
}
var spy = chai.spy(myFunction);
expect(spy).to.be.spy;
myFunction();
expect(spy).to.have.been.called();
});
});
我收到以下断言错误:
AssertionError: expected { Spy } to have been called
at Context.<anonymous> (test/input-text-test-fixture.html:282:28)
谁能告诉我哪里做错了?
您需要调用间谍本身 - 而不是函数。
describe("test spies", function () {
it("are worning", function () {
function myFunction () {
console.log("Hello");
}
var spy = chai.spy(myFunction);
expect(spy).to.be.spy;
spy(); // Call the spy here
expect(spy).to.have.been.called();
});
});
间谍包装函数并在内部调用它。通过仅调用函数本身,您 chai-spies
没有机会记录函数实际已被调用。
我正在尝试在浏览器上使用 chai spies 和 mocha 运行,但有些东西不起作用。
使用此 html 配置:
<html>
<head>
<meta charset="utf-8">
<title>Mocha Tests</title>
<link rel="stylesheet" href="./node_modules/mocha/mocha.css" />
</head>
<body>
<div id="mocha"></div>
<script src="./node_modules/mocha/mocha.js"></script>
<script src="./node_modules/chai/chai.js"></script>
<script src="./node_modules/chai-spies/chai-spies.js"></script>
<script>
mocha.setup('bdd')
mocha.reporter('html');
var expect = chai.expect;
</script>
<script src="./test.js"></script>
<script>
if (navigator.userAgent.indexOf('PhantomJS') < 0) {
mocha.run();
}
</script>
</body>
</html>
以及这个测试文件:
describe("test spies", function () {
it("are worning", function () {
function myFunction () {
console.log("Hello");
}
var spy = chai.spy(myFunction);
expect(spy).to.be.spy;
myFunction();
expect(spy).to.have.been.called();
});
});
我收到以下断言错误:
AssertionError: expected { Spy } to have been called
at Context.<anonymous> (test/input-text-test-fixture.html:282:28)
谁能告诉我哪里做错了?
您需要调用间谍本身 - 而不是函数。
describe("test spies", function () {
it("are worning", function () {
function myFunction () {
console.log("Hello");
}
var spy = chai.spy(myFunction);
expect(spy).to.be.spy;
spy(); // Call the spy here
expect(spy).to.have.been.called();
});
});
间谍包装函数并在内部调用它。通过仅调用函数本身,您 chai-spies
没有机会记录函数实际已被调用。