【问题标题】:Correct syntax for JS Test Driver "assertException"?JS 测试驱动程序“assertException”的正确语法?
【发布时间】:2011-12-23 23:09:50
【问题描述】:

我正在尝试弄清楚如何正确使用 JS 测试驱动程序的 assertException 方法。从谷歌的文档中它应该是:assertException([msg], callback, error)。然而,无论我做什么,我总是得到一个 [ERROR] 的这个测试(而不是一个 [PASS],因为有一个例外):

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 回调中的代码实际抛出异常而不导致测试中出现错误 - 这不是应该发生的事情吗?

任何帮助将不胜感激。

【问题讨论】:

    标签: javascript js-test-driver


    【解决方案1】:
    assertException(function(){
        this.component = new myNamespace.component(this.testComponentSettings);
    }, "Error");
    

    error 参数应该是抛出错误的Error.name(如“ReferenceError”、“TypeError”等)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-04
      • 1970-01-01
      • 2023-03-19
      • 1970-01-01
      • 1970-01-01
      • 2022-11-07
      • 2021-06-07
      • 2019-08-22
      相关资源
      最近更新 更多