[英]about unit testing
問:我的問題包括三個部分:
1-i想問一下如何對一個方法進行單元測試這個方法使用另一種方法連接數據庫(層概念或ORM)。
2 - 是單元測試可以在我的方法(它們之間的合同)中進行測試如何?並請一個例子來澄清這一點?
3 - 當我知道我的單元測試只是浪費而不是那么重要時,我想進行單元測試以避免錯誤..
請隨時解釋,任何資源建議...等
提前致謝
一個重要的設計方面是在應用程序的不同層之間建立弱耦合。 這種弱耦合可以通過引入接口和抽象類來實現。 這樣,應用程序的不同層就不會強烈耦合。
較弱的耦合允許在單元測試中更輕松地模擬那些依賴關系,從而使您永遠不必依賴數據庫調用。
讓我們以以下界面為例:
public interface IProductsRepository
{
Product Get(int productId);
void Save(Product product);
}
現在您可以擁有一個依賴於此存儲庫的服務層:
public class ProductsService
{
private readonly IProductsRepository _repository;
public ProductsService(IProductsRepository repository)
{
_repository = repository;
}
public void SomeBusinessOperation(int productId)
{
var product = _repository.Get(productId);
// TODO: update some properties of the product
_repository.Save(product);
}
}
如您所見,服務類現在已弱耦合到存儲庫。 然后,您可以非常容易地對它進行單元測試。 只需選擇諸如Rhino Mocks之類的模擬框架,並在您的單元測試中生成一個模擬的存儲庫實現,即可將其饋送到服務構造函數,並能夠在隔離任何數據庫的情況下測試業務操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.