簡體   English   中英

關於單元測試的非常基本的問題

[英]Very Basic question on Unit Testing

我有這樣的課程-

public class MyClass : ISomeInterface
{
        public MyClass(string connString)
        {
            // set conn string on a private member
        }


       // interface methods
       public CreateDb(string dbName) {...}

       public DropDb(string dbName) {...}

       public string GetLastError() {...}
}

它是舊版代碼的一部分,我必須編寫UnitTests。 現在,如果我只想為此類編寫測試,該如何繼續進行以使所有公共方法的測試覆蓋率都為100%? 任何人都可以在課堂上提供一些小樣本嗎?

編輯 -CreateDb和DropDb捕獲SqlException並設置錯誤消息。 通過公共接口方法GetlastError()公開錯誤消息

注意:我正在使用RhinoMocks和MSTest

該類中有三種方法。

您必須為三種方法編寫單元測試。

對於

public <Returntype> MyClass(string ConString)
{

}

應該至少有兩個單元測試。

1)當ConString為Null或Empty時,您的代碼將執行什么操作。 如果為null或為空,則必須捕獲Exception

2)當連接字符串正確時,您將顯示的最后一條語句或確認是什么。

有關RhinoMocks 鏈接的更多信息

假設您的班級創建了一些實際的數據庫,您將有兩個選擇來測試該班級:

  1. 讓該類創建並釋放真實的數據庫,並使測試斷言該數據庫已按預期創建。
  2. 使用一個DB Mock ,並使測試斷言對該模擬的調用是正確的。 如果要使用此選項,則必須再次選擇:

    一種。 請勿更改代碼,並使用支持方法調用解釋(例如TypeMock)的 Mocking Framework。
    b。 更改您的代碼以使其具有用於數據庫接口(AkA Dependency Injection )的控制器或屬性,並使用RhinoMocks模擬數據庫接口。

希望對您有所幫助,也許您可​​以提供有關該問題的更多詳細信息,所以答案可能會更詳細:-)

暫無
暫無

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

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