In this chapter we've learned how to write unit tests by using the appropriate tools to our disposal: NUnit, FsUnit, Unquote, and Foq. We have also learned about different techniques for handling external dependencies, using interfaces and functional signatures, and executing dependency injection into constructors, properties, and methods. Finally, we talked about test doubles, stubs, and mocks and the reasons for avoiding mocking, even in situations where it would seem tempting.
In the next chapter, we will learn about integration testing, when and what to integration test, and how to prepare test data for integration testing. We will test databases and web services and dive into the level of investment that needs to be done in the external system we're testing against.