Automated testing is an incredible aid when writing software. This course teaches you how to write code that makes it easy to test, shows you the different kinds of automated tests, and provides tools that aid in writing tests.
At the core of software development is a thorough knowledge of writing automated tests. In this course, Effective Automated Testing with Spring, you will learn how to write automated tests. You will learn how to organize code to make it easy to test. Next, you'll see exactly what you need to do to learn how to write automated tests. Finally, you'll learn how to use automated tests as a source of documentation. When you’re finished with this course, you will have a foundational knowledge of automated testing that will help you as you move forward to software development.
Billy Korando is a senior software consultant with Keyhole Software. Billy has over ten years of experience in software development and has worked in the exciting industries like finance, healthcare, insurance, shipping, and government.
Section Introduction Transcripts
Section Introduction Transcripts
Course Overview Hi everyone. My name is Billy Korando, and welcome to my course, Effective Automated Testing with Spring. I'm a software consultant with Keyhole Software. Frustrated with slow progress on your projects? Losing sleep because bugs keep popping up in prod? Can't make heads or tails of the project you have just been assigned to? In this course, we're going to learn how automated testing can speed up the development process, squash bugs before they make it to prod, and provide accurate documentation for you and future developers. Some of the major topics that we will cover include the value of automated testing. We'll learn how automated testing is key to alleviating many of the struggles we face as developers, and how to get the most value out of the tests we write. Organizing code to make testing easy. There are several common mistakes developers make when writing code that make it difficult to test, and we'll learn what they are and how to avoid them. Practices that aid the software development process. Automated testing isn't just a post hoc process for catching bugs, but can be a powerful tool during the software writing process. And, tools that make testing easier. Many tools have been developed over the years that make writing automated tests easier, and we'll learn how to use several of them. By the end of this course, you'll have the know-how and tools to quickly and easily cover projects you're working on in high-quality, automated tests. Before beginning this course, you should be familiar with Java, the basics of JUnit, and Spring. I hope you'll join me on this journey to learn automated testing with the Effective Automated Testing with Spring course, at Pluralsight.
Leveraging Dependency Injection Hey, this is Billy with Pluralsight, and we are looking at how to write effective automated tests in Spring. In the previous module, we learned one of the biggest impediments to writing automated tests is poorly designed code. When classes have too many responsibilities, or when they don't have a way of abstraction from their dependencies, test complexity and maintenance costs rise sharply, to the point where automated tests no longer provide enough value to justify the time spent writing and maintaining them. In this module, we will learn how the patterns and practices covered in the previous module allow for the easy injection of mock dependencies, and how to leverage these mock dependencies to test the business behavior of our application. During this module, we will take a closer look at the key characteristics and goals of unit testing. We will look at the different types of mocks and when and where they should be used, have a brief overview of the demo application we will be building during this course, learn about test-driven development, or TDD, and finally, run through a few scenarios of modifying our application and adding new features to it.
Component Testing with Spring Tools Hey, this is Billy with Pluralsight, and we are looking at how to write effective automated tests with Spring. So far in this course, we have been learning about how to structure our code to make it easier to test, and learning how to effectively unit test our code. Now we're going to go a little bit deeper and start testing some of the more difficult areas of our code to get into, such as security testing, how our application handles JSON, or if we are using aspects, for example, to help with logging. Luckily for us, Spring provides a lot of excellent tools for testing these parts of our application, and we're going to be learning about them in this module. Our agenda for this module will be defining component integration testing, what are its goals, and what separates it from unit testing. Using Spring and Spring Boot testing utilities, we will take a look at testing several different layers of our application including testing our RESTful APIs, testing the data layer, and security testing. We will also look at how to test JSON marshalling and unmarshalling, and testing aspects as well.
System Integration Testing Hey, this is Billy with Pluralsight, and we're looking at how to write effective automated tests with Spring. So far in this course, we have been leaning how to structure our code and make it easier to test and using tools provided by Spring to help with testing our application. In this module, we're going to be looking at System Integration Testing to ensure our applications play well with others. In this module, we'll be covering what is system integration testing, what unique goals we are trying to accomplish when writing system integration tests versus other types of testing, an introduction to TestContainers in Docker for system integration testing, which will also include a demo on these tools in action, and an overview and hands-on demo of Spring Cloud Contract.
Documenting Your Code with Tests Hey, this is Billy with Pluralsight, and we're looking at how to write effective automated tests with Spring. In this course, we have looked at how to write code and make it easier to test using tools provided by Spring to make testing easier, and some recently developed tools to help with integration testing. In this module, we'll take a look at some tools, both within the Spring ecosystem and beyond, that can help make tests easier to write, read, as well as produce more useful documentation. Our agenda for this module will be using tests as documentation, both how to write tests that other developers can easily read, as well as how tests can be used to directly produce documentation for a system. We will review acceptance testing using behavior-driven development, or BDD, and how it can help both when developing an application, as well as how it can document a system as we write it. This will also include a demo on BDD in action. We'll also have some demos of tools and practices for writing descriptive and readable tests, as well as demoing tools that can be used to directly generate documentation from the test we write.