我正在尝试弄清楚如何正确使用JS测试驱动程序的assertException方法。根据谷歌的文档,它应该是: assertException(msg,callback,error)。然而,无论我做什么,我总是在这个测试中得到一个错误(而不是通过,因为有一个异常):
ComponentTest.prototype.testEnforceUniqueComponentIds = function() {
assertException(function(){
this.component = new myNamespace.component(this.testComponentSettings);
});
}在我的src JS中:
myNamespace.component = function(params){
if (typeof params.selector == 'undefined'){
throw new Error('no selector provided');
}
this.settings = jQuery.extend({}, {
id : 'defaultComponentId',
type : 'defaultComponentType',
selector : 'body',
isUnique : false
}, params);
if(typeof(myNamespace.componentRegistry[params.id]) === "undefined"){
myNamespace.registerComponent(this);
} else {
throw new Error('non-unique component id provided');
}
}下面是js-test-driver的输出:
C:\xampp2\htdocs\myNamespace\v2>java -jar JsTestDriver.jar --tests all --verbose
[PASSED] ComponentTest.testInit
[LOG] setUp
[LOG] tearDown
[PASSED] ComponentTest.testDestroy
[LOG] setUp
[LOG] tearDown
[ERROR] ComponentTest.testEnforceUniqueComponentIds
[LOG] setUp
Total 3 tests (Passed: 2; Fails: 0; Errors: 1) (1.00 ms)
Firefox 7.0.1: Run 3 tests (Passed: 2; Fails: 0; Errors 1) (1.00 ms)
ComponentTest.testEnforceUniqueComponentIds error (1.00 ms):对于我来说,我不知道如何让assertException回调中的代码真正抛出异常,而不会在测试中导致错误-这不是应该发生的事情吗?
任何帮助都将不胜感激。
发布于 2012-02-15 21:28:39
assertException(function(){
this.component = new myNamespace.component(this.testComponentSettings);
}, "Error");error参数应为抛出错误的Error.name (如"ReferenceError“、"TypeError”等)。
https://stackoverflow.com/questions/8042624
复制相似问题