Using AssertJ Assertion
Installing
To install Diferencia AssertJ Assertion you need to add AssertJ
and Diferencia AssertJ Assertions
dependencies on your build tool.
For now Diferencia is released in jcenter
but in near future will be released in Maven central as well.
<repositories>
<repository>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>central</id>
<name>bintray</name>
<url>https://jcenter.bintray.com</url>
</repository>
</repositories>
Maven
<dependency>
<groupId>com.lordofthejars.diferencia</groupId>
<artifactId>diferencia-java-assertj</artifactId>
<version>${version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<version>3.10.0</version>
<scope>test</scope>
</dependency>
Code Example
The AssertJ Assertion
main class is com.lordofthejars.diferencia.assertj.DiferenciaAssertions
which is the responsible to implement the assertThat
method to be used to assert that no errors has occurred in Diferencia.
@ClassRule (1)
public static DiferenciaRule diferenciaRule =
new DiferenciaRule("http://now.httpbin.org/",
"http://now.httpbin.org/");
@Test
public void should_use_diferencia_to_detect_any_possible_regression()
throws IOException {
final String diferenciaUrl = diferenciaRule.getDiferenciaUrl();
sendRequest(diferenciaUrl, "/"); (2)
DiferenciaAssertions.assertThat(diferenciaRule.getDiferencia())
.hasNoErrors(); (3)
}
1 | This example uses JUnit 4 but can be used with any other supported frameworks in the same way. |
2 | Send the request and forget the response. You can send as many as required. |
3 | Asserts that no errors have occurred. |
Filtering
Sometimes you don’t want to assert if there has been any error but just check a subset of them.
For this purpose you have withFilter
method.
For example:
DiferenciaAssertions.assertThat(diferencia)
.withFilter("GET", "/") (1)
.hasNoErrors())
1 | Sets Http method and path to filter. |
In previous example you are just asserting that any interaction on GET
http method on root /
path should contain no errors, but if there are any errors in other interactions, they will be ignored.