2011-11-07 3 views
4

JS Test DriverのassertExceptionメソッドを正しく使用する方法を理解しようとしています。 Googleのドキュメントからは、assertException([msg]、コールバック、エラー)が必要です。しかし、(例外が発生したため、代わりに[PASS]の)、関係なく、私は何をすべきか、私はいつもこのテストのために[ERROR]を取得していない:JS Test Driver "assertException"の正しい構文ですか?

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-テストドライバーから出力された:私の人生のために

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コールバック内のコードを持ってする方法を見つけ出すことはできませんテストで - ないこれは何が起こるはずですか?

ご協力いただければ幸いです。

答えて

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

エラー引数が(例えば "にReferenceError"、 "例外TypeError" など)スローエラーのError.nameなければなりません。

関連する問題