m90*_*m90 2 testing amd mocha.js requirejs node-assert
我正在为自定义requirejs加载器编写测试.在格式错误的输入上它应该抛出一个错误.
我正在使用mocha并简单node-assert地测试它:
it('throws a SyntaxError on malformed input', function(done){
assert.throws(function(){ requirejs(['myLoader!malformedInput'], Function.prototype) }, SyntaxError);
done();
});
Run Code Online (Sandbox Code Playgroud)
测试失败的原因是:
AssertionError:缺少预期的异常(SyntaxError)..
根据我的理解,读取断言的文档我的语法应该没问题.错误消息也有点难以理解.
我最好的猜测是,这是因为requirejs呼叫是异步的,但后来我不知道何时呼叫done这种情况?
或者我误解了requirejs处理我传递的错误的方式onload.error(e)?
assert.throws不适用于异步引发的异常.以下是使用RequireJS errback完成工作的示例:
var assert = require("assert");
var requirejs = require("requirejs");
requirejs.config({
baseUrl: ".",
});
it('throws a SyntaxError on malformed input', function (done){
requirejs(['fail'], function (fail) {
// This should not be called.
throw new Error("We were expecting a failure but none occurred!");
}, function (err) {
assert(err.originalError instanceof SyntaxError,
"We should get a SyntaxError.");
done();
});
});
Run Code Online (Sandbox Code Playgroud)
该fail.js文件应包含无意义的代码(即生成一个SyntaxError).传递给的第二个函数requirejs是在加载失败时调用的错误.
| 归档时间: |
|
| 查看次数: |
2625 次 |
| 最近记录: |