[英]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 鏈接的更多信息
假設您的班級創建了一些實際的數據庫,您將有兩個選擇來測試該班級:
- 讓該類創建並釋放真實的數據庫,並使測試斷言該數據庫已按預期創建。
- 使用一個DB Mock ,並使測試斷言對該模擬的調用是正確的。 如果要使用此選項,則必須再次選擇:
一種。 請勿更改代碼,並使用支持方法調用解釋(例如TypeMock)的 Mocking Framework。
b。 更改您的代碼以使其具有用於數據庫接口(AkA Dependency Injection )的控制器或屬性,並使用RhinoMocks模擬數據庫接口。
希望對您有所幫助,也許您可以提供有關該問題的更多詳細信息,所以答案可能會更詳細:-)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.