2014-02-26 36 views
0

我正在開發基於java的項目。它具有如此多的依賴性。根據需要,每個進程都與服務器交互。我們可以使用任何單元測試嗎?如果是,例如&如果沒有原因。如何對具有95%依賴性的java項目進行單元測試。

+1

我想不出任何Java源代碼,不能單元測試。有像Mockito,PowerMock這樣的嘲笑框架可以讓你嘲笑一切。 – Manish

回答

1

是的,你可以在這種情況下使用測試。 您必須使用某種形式的模擬(Moq框架)來模擬服務器資源。

其中一個重要步驟是使用依賴注入。爲了使用Moq框架,您需要進行大量的代碼重構。例如,

class WeatherReportDisplay 
{ 
    WeatherServerSomeWhereInIowa objserver = new WeatherServerSomeWhereInIowa(); 

    void PrintWeatherReport() 
    { 
     foreach (var item in objserver.Weather.Items) 
     { 
      Println(item.City + " " + item.temprature); 
     } 
    } 
} 

你必須測試時,可以在改變這種形式的代碼

class WeatherReportDisplay 
{ 
    IWeatherServer objserver; 

    // Constructor Injection 
    WeatherReportDisplay(IWeatherServer server) 
    { 
     if (server == null) throw new Exception("please send a server"); 

     this.objServer = server; 
    } 

    string WeatherReport() 
    { 
     return objServer.City + " " + objServer.temprature); 
    } 
} 

class UnitTest 
{ 
    void Should_Return_NewYork_20DegreeBelowZero() 
    { 
     WeatherReportDisplay obj = new WeatherReportDisplay(new MockServer); 
     var result = obj.PrintWeatherReport (); 
     Assert.IsEqual(result, "NewYork_20DegreeBelowZero"); 
    } 
} 
+0

謝謝......但我們發現定期實施jmetter。它幫助我們進行單元測試以及性能測試。 –

相關問題