最近 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 を使用してもうまくいかなかったのはなぜですか?
文書化されていない具体的なクラスを偽造することにはいくつかの制限がありますか?