2012-04-27 15 views
1

テスト関数の名前に制限はありますか?JsTestDriver、テスト関数の名前

testA()testB()と書くと、どちらも実装されます。私は「AjaxCreateT」に「TESTB」から名称を変更した場合

AjaxCreateTest = TestCase("AjaxCreateTest"); 
AjaxCreateTest.prototype.testA = function(){}; 
AjaxCreateTest.prototype.testb = function(){}; 

しかし、ちょうどtestA()が実装されます。とても奇妙。助けてもらえますか?

答えて

3

JsTestDriverは接頭辞 "test"で始まるメソッドのみを実行します。これは、テストとして実行されないヘルパーメソッドを同じオブジェクトに書き込むことを可能にする命名規則です。

予約メソッド名setUptearDownの2つの予約メソッド名があり、それぞれのテストの前後に実行されます。あなたも、例えば、あなたのテストはうまく読みやすくている、あなたのテスト名にスペースを使用することができます

:例では

TestCase("AjaxCreateTest", { 
    setUp : function() { 
     this.subject = new MyAjaxCode(); 
     this.stubXHR(); 
    }, 

    tearDown : function() { 
     this.restoreXHR(); 
    }, 

    stubXHR : function() { 
     // stub global objects to intercept Ajax calls 
    }, 

    restoreXHR : function() { 
     // restore global state 
    }, 

    "test should say hi" : function() { 
     assertEquals("Hi", this.subject.sayHi()); 
    } 
} 

を一つだけの試験があります上に、残りはヘルパーメソッドです。

Ajaxコール(「Fake XHR」を参照)をスタブしたり、さらに例を挙げたりするのを助けるためにSinon.JSをお勧めします。

関連する問題