title: Need help to understand Moq better
body: <p>I've been looking at the Moq documentation and the comments are too short for me to understand each of things it can do.</p>
  
  <p>The first thing I don't get is <code>It.IsAny&lt;string&gt;(). //example using string</code></p>
  
  <p>Is there an advantage of using this over just putting some value in? I know people say to use this if you don't care about the value, but if you don't care about the value can't you just do "a" or something? This just seems like more typing.</p>
  
  <p>Secondly, when would be an example be of when you would not care about the value? I thought Moq needs the value to match up stuff.</p>
  
  <p>I don't get what <code>It.Is&lt;&gt;</code> is for at all or how to use it. I don't understand the example and what it is trying to show.</p>
  
  <p>Next, I don't get when to use <code>Times</code> (and its <code>AtMost</code> methods and similar). Why would you limit the number of times something is set up? I have some <code>AppConfig</code> value that I need to use twice. Why would I want to limit it to, say, once? This would just make the test fail. Is this to stop other people from adding another one to your code or something?</p>
  
  <p>I don't get how to use <code>mock.SetupAllProperties();</code>
  What does it set up the properties with?</p>
  
  <p>I don't also get why there are so many different ways to set up a property and what their differences are. The documentation has:</p>
  
  <pre><code>SetupGet(of property)
  SetupGet&lt;TProperty&gt;
  </code></pre>
  
  <p>I noticed that a lot of the stuff in Moq shows <code>()</code> and <code>&lt;&gt;</code> - what's the difference between them and what would they look like in use?</p>
  
  <p>I also don't get why they have <code>SetupGet</code>. Would you not use <code>SetupSet</code> to set a property?
  <code>SetupSet</code> has five different ways to use it in the documentation. Plus another one called <code>SetupProperty</code>. So I don't understand why there are so many.</p>
  
  <p>On a side note, I am wondering if variables used in lambdas are independent of other lambdas. E.g.:</p>
  
  <pre><code>mock.setup(m =&gt; m.Test);
  stop.setup(m =&gt; m.Test);
  </code></pre>
  
  <p>Would this be ok or would there be some conflict between the variable <code>m</code>?</p>
  
  <p>Finally, I was <a href="http://dimecasts.net/Casts/CastDetails/8" rel="noreferrer">watching this video</a> and I am wondering if it shows Visual Studio. His Intellisense looks different. A lightbulb pops up for him (I am happy mine does not, as it brings back painful memories of netbeans), and there are lines going from one opening brace to the closing brace and etc.</p>