簡體   English   中英

連接到ASP.NET Web服務時單元測試引發異常

[英]Unit test throwing an exception while connecting to asp.net web service

我創建了一個單元測試來測試是否可以登錄到我的ASP.NET Web服務。 Web服務工作正常,甚至登錄過程也可以。

但是,當嘗試通過測試連接到它時,這給了我一個錯誤:

指定的URL('http://www.foo.com/')與有效目錄不對應。 配置為在IIS的ASP.NET中運行的測試要求URL存在有效目錄。

由於該項目仍在開發中,因此我正在通過Visual Studio運行我的Web服務。

這是我的測試代碼:

[TestMethod()]
        [HostType("ASP.NET")]
        [UrlToTest("http://www.foo.com/")]
        public void Login_Test_It_Fails_If_GUID_IS_Wrong()
        {
            //Arrange
            Service service = new Service(); 
            string pGUID = string.Empty; 
            string connectionSQL = @"XXXXXXXXXX";
            bool targetOutput = false;

            //Act
            targetOutput = service.Login(pGUID, connectionSQL);

            //Assert
            Assert.IsFalse(targetOutput);
        }

提前致謝。

在ASP.NET中運行測試需要URL解析為ASP.NET頁面,並且該頁面才能正確執行直到Load事件。
該測試方法由頁面加載事件調用。 因此,您可以創建一個空白的aspx頁面,並將UrlToTest屬性設置為對其進行掛鈎。

您正在此處進行集成測試 ,因為您正在測試應用程序可以與外部依賴項進行通信。

如果要進行單元測試,則可能需要探索另一種方法。

  1. 如果您控制的是Web服務,則可以為該服務本身編寫測試,以確認其登錄身份驗證邏輯。

  2. 對於您使用的應用程序,您可以根據服務的模擬編寫單元測試,以確保您的應用程序在收到來自服務的響應時表現出正確的行為。

另一方面,將連接字符串傳遞給服務使用似乎是一個糟糕的設計。 為什么調用應用程序需要了解服務應使用哪個數據庫?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM