1
好的我在這種情況下有一個相當困難的問題 - 我有一個類,其中包含需要類控制器類的方法。我不知道如何嘲笑這個測試,所以如果任何人都可以幫助我真的很感激它!模擬控制器和模型狀態在另一個類中 - C#,.Net,Moq
public void Class(Controller controller, Model model)
{
if (model.Address != null && model.Address.Country != null && model.Address.Country.CountryId > 0)
model.Address.Country = _countryService.Find(*expression for id here*);
else
model.Address.Country = null;
controller.ModelState.RemoveRange(controller.ModelState.Where(i => i.Key.StartsWith("Address.Country")).ToList());
controller.ModelState.RemoveRange(controller.ModelState.Where(i => i.Key.Contains(" *Stuff here* ")).ToList());
controller.ModelState.Remove("owner");
}
所以在這裏我的問題是,控制器類是一個抽象類,從多個其他類繼承:
public abstract class Controller : Class1, Class2, Class3, Class4, Class5, Class6, Class7, Class8, Class9
{
*Lots of un-needed code here*
}
我需要能夠嘲笑控制器,以便能夠得到我的測試運行 - 否則我得到第一個Controller.ModelState沒有對象集引用。
任何幫助將是偉大的!亂搞了一段時間後
C#[不支持多繼承](http://stackoverflow.com/q/2456154/1698557),所以'Controller'只能從另一個類派生。那些其他的「類」接口?你可以改變你的類的構造函數來使用這些接口而不是'Controller'嗎? – 2014-11-25 13:40:37
是的,他們是接口旁邊的一類,並沒有不幸的是我不能 - 這是問題,因爲我不能得出一個最佳或甚至工作/功能的方式來嘲笑這個問題。 – harrison 2014-11-25 13:46:50