Правильный синтаксис для JS Test Driver «assertException»?

#javascript #js-test-driver

#javascript #js-test-driver

Вопрос:

Я пытаюсь выяснить, как правильно использовать метод assertException JS Test Driver. Из документации Google это должно быть: assertException ([сообщение об ошибке], обратный вызов, ошибка). Однако, что бы я ни делал, я всегда получаю [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:xampp2htdocsmyNamespacev2>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 фактически генерировать исключение, не вызывая ОШИБКИ в тесте — разве это не то, что должно произойти?

Любая помощь была бы оценена.

Ответ №1:

 assertException(function(){
    this.component = new myNamespace.component(this.testComponentSettings);
}, "Error");
  

аргумент ошибки должен быть Error.name о выданной ошибке (такой как «ReferenceError», «TypeError» и т.д.).