Qunit 异常测试
Qunit exception testing
通过查看,我未能找到当前问题的答案:
我有一个自定义异常(根据this guide设计):
let StrictOverwrite_destination_error = function(message) {
var error = new Error(message);
error.name = "utils_misc.StrictOverwrite_destination_error";
throw error;
};
我从函数 strictOverwrite
:
中抛出的
function strictOverwrite ( destination, source, debug ) {
// lots of code snipped
else if ( !destination.hasOwnProperty( property ) && source.hasOwnProperty( property ) )
{
throw new StrictOverwrite_destination_error(
"source.property exists, but destination.property doesn't" );
}
// more code snipped
return destination;
}
错误和函数都在我的模块 utils_misc
中定义,尽管我的自定义异常定义不是从命名空间导出的。
这是我测试 strictOverwrite
函数抛出异常的方式:
assert.throws(
function() {
utils_misc.strictOverwrite(c, c_dominator, false);
},
function(error) {
return error.name === "utils_misc.StrictOverwrite_destination_error";
}
);
但是,唉,Qunit 并不满意:
Expected:
function( a ){
[code]
}
Result:
{
"message": "property is not defined",
"name": "ReferenceError"
}
Diff:
function( a ){
[code]{
"message": "property is not defined",
"name": "ReferenceError"
}
除了整个事情不起作用之外,让我困惑的一件事是 Qunit 是如何获得这条消息的:"property is not defined"
。这不完全是我的自定义 StrictOverwrite_destination_error
异常产生的消息。
这道题写的测试代码运行的很好。问题出在正在测试的 application 代码中。
通过查看
我有一个自定义异常(根据this guide设计):
let StrictOverwrite_destination_error = function(message) {
var error = new Error(message);
error.name = "utils_misc.StrictOverwrite_destination_error";
throw error;
};
我从函数 strictOverwrite
:
function strictOverwrite ( destination, source, debug ) {
// lots of code snipped
else if ( !destination.hasOwnProperty( property ) && source.hasOwnProperty( property ) )
{
throw new StrictOverwrite_destination_error(
"source.property exists, but destination.property doesn't" );
}
// more code snipped
return destination;
}
错误和函数都在我的模块 utils_misc
中定义,尽管我的自定义异常定义不是从命名空间导出的。
这是我测试 strictOverwrite
函数抛出异常的方式:
assert.throws(
function() {
utils_misc.strictOverwrite(c, c_dominator, false);
},
function(error) {
return error.name === "utils_misc.StrictOverwrite_destination_error";
}
);
但是,唉,Qunit 并不满意:
Expected:
function( a ){
[code]
}
Result:
{
"message": "property is not defined",
"name": "ReferenceError"
}
Diff:
function( a ){
[code]{
"message": "property is not defined",
"name": "ReferenceError"
}
除了整个事情不起作用之外,让我困惑的一件事是 Qunit 是如何获得这条消息的:"property is not defined"
。这不完全是我的自定义 StrictOverwrite_destination_error
异常产生的消息。
这道题写的测试代码运行的很好。问题出在正在测试的 application 代码中。