I've just started looking into the moq framework and a bit confused. I've seen people use setup to layout the expected behavior, take a simple example where you are just checking that a function was called. Then when asserting i've seen verifyall called.
But I've also seen people not using setup and passing in a lambda to verify to check that the function was called. When would you use setup over verify and vice versa?