2013-10-15 91 views
0

我對nUnit很陌生,一般測試,這是我的第一個測試方法。 我希望我做了TDD,但已經太晚了,我不得不對現有的代碼進行單元測試。NUnit在WCF上的測試

我收到此錯誤: HttpContext不可用。該類只能用於ASP.NET請求的上下文中。

其他每個不引用服務的方法都會通過測試。我如何解決它?

namespace MyWCFServiceTests 
{ 
    [TestFixture] 
    public class Class1 
    { 
     [Test] 
     public void myMethod() 
     { 
      MyWCFService.Service1 wcf = new MyWCFService.Service1(); 
      wcf.MyMethod(); 
     } 
    } 
} 
+0

像下面的答案中提到你應該模擬服務實例。在你的測試中,你應該關注內部邏輯(對於客戶和服務(通常是兩種不同的測試項目不同的解決方案))。如果你是單元測試新手,我會選擇Moq。 – Jocke

回答

0

看起來像你的服務的基本概念的文章需要ASP.NET主機。如果是這種情況,它取決於HttpContext,你將無法嘲笑它。值得一提的是,這不是單元測試,而是功能/集成,因爲您測試整個WCF管道(序列化,網絡堆棧,主機環境,可能存儲層等)。您有以下選項,但:

  • 主機上的IIS(就像你可能在生產)服務,讓你的測試只是普通的WCF客戶

  • 嘗試轉換的服務,以便它可以自託管如果可能的話

  • 重構服務實現,這樣就可以(單位 - )測試不WCF的邏輯(你會用很大的依賴性最終但這是一件好事)