title: How do I setup MOQ to accept Any instances of a given Expression<T>?
body: <p>I have the following interface that I want to mock:</p>
  
  <pre><code>public interface ISomeInterface
  {
      string GiveMe(Expression&lt;Func&lt;Person, bool&gt;&gt; predicate);
  }
  </code></pre>
  
  <p>With the following Poco:</p>
  
  <pre><code>public class Person
  {
      public string Name { get; set; }
  }
  </code></pre>
  
  <p>Then I am setting up my mock as:</p>
  
  <pre><code>[Test]
  public void Run()
  {
      var expectedPredicate = It.IsAny&lt;Expression&lt;Func&lt;Person, bool&gt;&gt;&gt;();
      var mock = new Mock&lt;ISomeInterface&gt;(MockBehavior.Strict);
      mock
          .Setup(m =&gt; m.GiveMe(expectedPredicate))
          .Returns("Yo!");
  
      var message = mock.Object.GiveMe(p =&gt; p.Name == string.Empty); // throws
  }
  </code></pre>
  
  <p>But I am getting:</p>
  
  <blockquote>
    <p>Invocation failed with mock behavior Strict. All invocations on the
    mock must have a corresponding setup.</p>
  </blockquote>
  
  <p>What am I missing here?</p>