title: FakeItEasy Create a Fake of a Class
body: <p>I was attempting to use FakeItEasy recently but I wasn't able to create a Fake from a concrete class without working around many quirks.</p>
  
  <p>I tried the following:</p>
  
  <pre><code>public class MyObject {
  public MyObject(){}
  }
  ...
  MyObject fakeObject = A.Fake&lt;MyObject&gt;();
  </code></pre>
  
  <p>Which resulted in the a Constructor Not Found with Matching Arguements Exception</p>
  
  <p>Next I tried:</p>
  
  <pre><code>public class MyObject {
  public MyObject(string temp){}
  }
  ...
  MyObject fakeObject = A.Fake&lt;MyObject&gt;(x =&gt; x.WithArgumentsForConstructor(() =&gt; new MyObject("temp")));
  </code></pre>
  
  <p>Which resulted in a similar error.</p>
  
  <p>Finally I tried:</p>
  
  <pre><code>public class MyObject {
  //public MyObject(){}
  }
  ...
  MyObject fakeObject = A.Fake&lt;MyObject&gt;();
  </code></pre>
  
  <p>Which allowed me to finally create the fake.  I'm confused as to why most of the examples of faking a concrete class allude this is easier that I've found it to be?  And why using the documented method, trial #2 above, didn't work?</p>
  
  <p>Are there some limitations to faking a concrete class that aren't documented?</p>