- What can it be used for?
- Documentation
- Getting started
- How to get it
- Podcasts
- Examples
- Approved File Artifacts
- More Info
- LICENSE
- Developer notes
Capturing Human Intelligence - ApprovalTests is an open source assertion/verification library to aid unit testing.
It is compatible with JUnit 3 & 4 and TestNG
Approval Tests can be used for verifying objects that require more than a simple assert. They also come prepackaged with utilities for some common java scenarios including
- HashMaps & Collections
- Long Strings
- Log Files
- JPanels
- Xml
- Html
- Json
- Getting Legacy Code under tests
The best way to get started is download and open the Starter Project.
It is a maven project and can be imported in to any editor.
It's on Maven Central, search for 'approvaltests'. If you're using Maven, add this to your pom file:
<dependency>
<groupId>com.approvaltests</groupId>
<artifactId>approvaltests</artifactId>
<version>4.0.2</version>
</dependency>
or download the jars from maven central repository
You can watch a bunch of short videos on getting started and using ApprovalTests in Java at youtube.
Note: There are a lot of videos about ApprovalTests in .Net They are equally useful for understanding the concepts despite being in a different programming language.
If you prefer auditory learning, you might enjoy the following podcast (Note: Some of these talk about the .net side)
ApprovalTests eats it own dogfood, so the best examples are in the source code itself.
None the less, Here's a quick look at some Sample Code
public class SampleArrayTest extends TestCase
{
public void testList() throws Exception
{
String[] names = {"Llewellyn", "James", "Dan", "Jason", "Katrina"};
Arrays.sort(names);
Approvals.verifyAll("", names);
}
}
Will Produce a File
SampleTest.TestList.received.txt
[0] = Dan
[1] = James
[2] = Jason
[3] = Katrina
[4] = Llewellyn
Simply rename this to SampleTest.testList.approved.txt and the test will now pass.
The *.approved.*
files must be checked into source your source control.
This can be an issue with git as it will change the line endings.
The suggested fix is to add
*.approved.* binary
to your .gitattributes
twitter: @LlewellynFalco or #ApprovalTests
The suggested way to contribute to ApprovalTests is to pair with Llewellyn
However, if you are set on forking please read these notes