2013-05-01 16 views
5

Mam konkretną klasę, którą kpię, używając Mock.Of, ale nie ma ona domyślnego konstruktora. Czy istnieje sposób, aby to zadziałało bez konieczności łączenia się z tym lub korzystania z new Mock? Ten pierwszy jest w tej chwili przesadny, a drugi jest brzydszy. Mam zamiar spróbować stworzyć metodę rozszerzenia, które zwraca new Mock().Object, jednak nie sądzę, że Mock.Get będzie działać w tym scenariuszuMock.Of <T> z argumentami konstruktora

+0

pokrewne: http://stackoverflow.com/questions/7414704/mocking-objects-with-moq-when-constructor-has-parameters –

+0

I spojrzał na to, ale to nie rozwiązuje mojego problemu –

Odpowiedz

3

Okazuje się, że Moq robi obiekty utwór stworzony normalnie (z new i przejść z powrotem Object), tak aby mogą być używane w Mock.Get. To działa dla mnie. I nadal zajęłoby wbudowany w sposób, jeśli jest jedna:

public static T MockOf<T>(params Object[] args) where T : class 
{ 
    return new Mock<T>(args).Object; 
}