title: Moq, strict vs loose usage
body: <p>In the past, I have only used Rhino Mocks, with the typical strict mock.  I am now working with Moq on a project and I am wondering about the proper usage.</p>
  
  <p>Let's assume that I have an object Foo with method Bar which calls a Bizz method on object Buzz.</p>
  
  <p>In my test, I want to verify that Bizz is called, therefore I feel there are two possible options:</p>
  
  <p>With a strict mock</p>
  
  <pre><code>var mockBuzz= new Mock&lt;IBuzz&gt;(MockBehavior.Strict);
  mockBuzz.Setup(x =&gt; x.Bizz()); //test will fail if Bizz method not called
  foo.Buzz = mockBuzz
  foo.Bar();
  mockBuzz.VerifyAll();
  </code></pre>
  
  <p>With a loose mock</p>
  
  <pre><code>var mockBuzz= new Mock&lt;IBuzz&gt;();    
  foo.Buzz = mockBuzz
  foo.Bar();
  mockBuzz.Verify(x =&gt; x.Bizz()) //test will fail if Bizz method not called
  </code></pre>
  
  <p>Is there a standard or normal way of doing this?</p>