RSpec is an open source Behavior-Driven Development (BDD) ruby package that lets you build a specification alongside your software. BDD is an approach to software development that combines Test-Driven Development (TDD), Domain Driven Design and Acceptance Test-Driven Planning. RSpec helps you do the TDD part of that equation, focusing on the documentation and design aspects of TDD.
Continuous delivery is a software development strategy that optimizes the delivery process to get software delivered as quickly as possible. This blog by Eli Weinstock-Herman explains how to integrate the load testing stage in a continuous delivery process. It presents a detail step-by-step process on how to incorporate the load testing scripts into the Jenkins open source continuous integration tool as a new build step in the delivery pipeline. This step will run the load test and capture the results.
Unit testing is a difficult but essential activity to improve software quality and team velocity. This video presents the best practices to perform unit testing in a .NET context and with an agile approach.
The open source JUnit unit testing tool has been a blessing for Java developers. However, many programmers think that it is enough to learn the JUnit API and write a few tests in order to have a well-tested application. This idea is more dangerous than not doing unit tests because it leads to a wrong sense of code quality. Learning JUnit is the easiest part of unit testing your Java code, but writing good tests is the hard part.
Codeception is a Behavior Driven Development (BDD) testing PHP framework. It aims to provide an original way to write acceptance, functional and unit tests. It uses a scenario approach where you declare what you are doing and what results you expect from your tests. The first post introduces the tool and explains how to write tests with Codeception. A second post digs deeper into the code and shows you how Codeception could be used for unit testing.
This article provides a process to integrate Test-Driven Development in the maintenance of a .NET application. You will first write the tests that will prove your new code gets the same results as the legacy code. Then you isolate new code into separate methods or classes that you can test independently. You break down the requirements into simple valid tests. Finally you check to see that you have not introduced a new bug. While you are doing this, let Visual Studio generate the utility code for you and find a tool to run your tests continuously like AutoTest.NET.
Rowan Miller shows how to replace a DbContext based data access layer with an in-memory fake for unit testing in this blog post. He builds an interface that represents the context and then builds an in-memory fake of that context for use in our unit tests. He uses an MVC controller but the same approach can be used with any component that needs to interact with an EF based context, including repositories. The key benefits of this approach are stable and robust tests that execute quickly and exercise a single component, making failures easy to isolate.