我試圖假冒/存根出MS假貨的靜態方法返回Class與私有構造
System.DirectoryServices.ActiveDirectory.Domain.GetComputerDomain().Name
我想知道如何分配GetComputerDomain與「TESTDOMAIN」的名稱返回域。我可以返回一個空域如下:
System.DirectoryServices.ActiveDirectory.Fakes.ShimDomain
.GetComputerDomain =() => { return null; };
但我認爲主要的問題是,域類沒有公共構造函數,所以我不能做到以下幾點:
System.DirectoryServices.ActiveDirectory.Fakes.ShimDomain
.GetComputerDomain =() =>
{
return new System.DirectoryServices.ActiveDirectory.Domain()
{
Name = "TestDomain"
};
};
如何我能解決這個問題嗎?我並不認爲只有Moq可以和MS Fakes一起使用。是否有可能使用其中一種,另一種或兩種來實現這一目標?如果不是,我的其他選擇是什麼?
附註:我沒有真正尋找獲取域名的替代方案。我真的很想在當前的實施中如何使用它,因爲我希望更好地瞭解如何在將來可能屬於這一類別的情況下進行模擬和僞造。歡迎替代品,但真的很期待回答現有問題。
謝謝......之前沒有使用過Typemock Isolator。我喜歡它如何讓你做Moq和Fakes不允許的或不容易的事情。你是否嚴格使用Typemock Isolator或是否與Moq一起使用? 我打算接受其他人的答案只是因爲它只使用Moq和Fakes,但我傾向於完全移除Fakes並使用它,因爲Fakes不支持只有VS Professional版本的開發人員......在我看來是有點蹩腳。 –