I am taking the help from these mentioned links and will modify accordingly as per my understanding:
Good links:
[Good explanation by Jim](httphttps://stackoverflow.com/questions/9677445/mock-framework-vs-ms-fakes-frameworks) [Explanation by martin frowler](http://martinfowler.com/articles/mocksArentStubs.html) [Informative Link, but a little advanced (talks about integration testing)](http://www.infoq.com/presentations/integration-tests-scam) Ok before going forward there are two things when You are Unit Testing:- Sate Testing
- Behaviour Testing
In state testing You are only checking whether the actual method or System Under Test(SUT) is returning the correct value
In behaviour testing You check whether the correct method was called, or in other words whether a correct sequence of methods were called.
Stubs provide canned answers to calls made during the test, usually not responding at all to anything outside the test method.Here You generally do State testing.
Mocks are used to verify interaction between your SUT and its dependencies.You generally do behavior testing here