2015-07-21 84 views
1

我有一大堆的服務,如:呼叫茉莉花測試對象的不同

function ServiceA() {} 
ServiceA.name = "Service A"; 
ServiceA.description = "A service called A"; 

ServiceA.doStuff = new function(inputString){...}); 

說:

  1. 都必須具有相同的屬性設置(名稱,描述)
  2. 都有一個名稱相同的方法,但每種服務的方法內容都不相同。

目前我有一個單獨的測試每個服務,檢查屬性和方法的結果。但隨着測試/事測試對於每一個服務是相同的,我不知道如果我可以做這樣的事情:

var services = [ServiceA, ServiceB, ServiceC]; 
    for (index = 0; index < services.length; index++) { 
     describe("Testing Service", testFunction(services[index])); 
    } 

    function testFunction(service){ 
     it("bla", function(){...} 
    } 

我使用噶茉莉。

回答

0

我設法得到什麼,我想是這樣的:

var allServices = [ 
    { service: ServiceA, expectedResult: "resultA"}, 
    { service: ServiceB, expectedResult: "resultB"}, 
    { service: ServiceC, expectedResult: "resultC"} 
]; 

for (index = 0; index < allServices.length; index++) { 
    var service2test = allServices[index].service; 
    var expectedResult= allServices[index].expectedResult; 

    describe("Testing Service", function() { 
    ... 
    //test properties of service2test 
    //compare return value of service2test with expectedResult 
    ... 
    }); 
} 

製作一個單獨的測試功能和傳遞服務,它並沒有因爲出現以下錯誤的工作:

cannot read property call of undefined