FakeItEasy Создать подделку класса

Недавно я пытался использовать FakeItEasy, но не смог создать Fake из конкретного класса, не обойдя многие причуды.

Я попробовал следующее:

public class MyObject {
public MyObject(){}
}
...
MyObject fakeObject = A.Fake<MyObject>();

Это привело к тому, что конструктор не найден с исключением аргументов сопоставления.

Затем я попробовал:

public class MyObject {
public MyObject(string temp){}
}
...
MyObject fakeObject = A.Fake<MyObject>(x => x.WithArgumentsForConstructor(() => new MyObject("temp")));

Что привело к аналогичной ошибке.

Наконец я попробовал:

public class MyObject {
//public MyObject(){}
}
...
MyObject fakeObject = A.Fake<MyObject>();

Что позволило мне наконец создать подделку. Я не понимаю, почему большинство примеров подделки конкретного класса ссылаются на то, что это проще, чем я обнаружил? И почему использование задокументированного метода, испытание № 2 выше, не сработало?

Есть ли какие-то ограничения для подделки конкретного класса, которые не задокументированы?

5
задан Aj-itator 18 October 2011 в 02:51
поделиться