[英]How to Mock Base Class Property or Method in C#
我在Nunit測試用例中無緣無故地在Internet上瀏覽了模擬基類成員,並最終決定要求此廢料到堆棧溢出社區。
下面的代碼片段在我的應用程序中有場景。 我要為BankIntegrationController類編寫單元測試,並且我想對存根數據或IsValid屬性和Print方法進行模擬。
框架:Moq,Nunit
public class CController : IController
{
public bool IsValid {get;set;}
public string Print()
{
return // some stuff here;
}
}
public class BankIntegrationController : CController, IBankIntegration
{
public object Show()
{
if(this.IsValid)
{
var somevar = this.Print();
}
return; //some object
}
}
您無需嘲笑任何東西。 只需在調用Show
之前設置屬性:
[Fact]
public void Show_Valid()
{
var controller = new BankIntegrationController { Valid = true };
// Any other set up here...
var result = controller.Show();
// Assertions about the result
}
[Fact]
public void Show_Invalid()
{
var controller = new BankIntegrationController { Valid = false };
// Any other set up here...
var result = controller.Show();
// Assertions about the result
}
嘲諷的是,當你想指定的依賴將如何表現在特定的場景中真正有價值的技術(特別是當你想驗證你的代碼是如何與它進行交互),但在這種情況下,你沒有任何依賴關系(你已經向我們展示了)。 我觀察到很多開發人員在三種情況下不必要地使用了模擬:
IList<T>
-只需在測試中傳入List<T>
。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.