We shouldn't live in fear of our code. Long-term customer satisfaction, product agility, and developer happiness are crucial. A quality suite of automated tests helps achieve this. This practical course covers how and what to test at the unit, integration, and functional UI levels; and how to bring them all together with continuous integration build server.
Unit Testing - Testing in Isolation Welcome to this module on Unit Testing, or testing in isolation. In this module, we'll be looking at what unit tests are and what kinds of testing they're good for. We'll get acquainted with the NUnit testing framework and how to write and run tests. We'll explore the difference between state and interaction-based unit tests and look at how we can use the Moq Framework to create fake dependencies and help us isolate our tests.
Integration Testing In the module on unit testing, we learned how to test things in isolation. In this module, we're going to look at integration testing, which is concerned with testing that things work together. We're going to learn what integration testing is and how we can integration test at various levels. We'll learn about the Dependency Inversion principle and how it allows us to choose what object dependencies to use. We'll also look at how the gateway pattern can help us abstract and test external third party components. We'll look at some demos of the different levels of testing, including how we can use a dependency injection container to create our test object graph.
Functional UI Testing Hi, welcome to this module on Functional UI Testing, which is concerned with testing things at the user's level. In this module, we'll learn what automated functional UI testing is and what it's good for. We'll compare the two general styles of automated testing. We'll learn how to use the open source WatiN library to create automation tests. We'll then look at how we can better organize our test code to remove duplication and make our tests less brittle. And finally, we'll take a look at some advanced considerations when using the coded style of automation.
Putting it all Together with a Continuous Integration Server Hi, welcome to this module on Putting it all Together with a Continuous Integration Server. We've now learned about the different levels of tests and how to write them, but there's no point in having all these great, valuable tests if they don't get run early and often. This module looks at ensuring our tests do get run by using a build server to run them automatically for us. We'll be looking at what the practice of continuous integration is, what build pipelines are, and how to implement them using the TeamCity build server. We'll also think about some advanced considerations for automated builds.