mirror of
https://github.com/spring-projects/spring-data-elasticsearch.git
synced 2025-05-30 00:32:12 +00:00
parent
e408067b49
commit
fcb8a9b0ed
41
TESTING.adoc
Normal file
41
TESTING.adoc
Normal file
@ -0,0 +1,41 @@
|
||||
= Testing
|
||||
|
||||
== Unit tests
|
||||
|
||||
Unit tests in the project are run with
|
||||
|
||||
----
|
||||
./mvnw test
|
||||
----
|
||||
|
||||
== Integration tests
|
||||
|
||||
Integration tests are executed when
|
||||
----
|
||||
./mvnw verify
|
||||
----
|
||||
is run. There must be _docker_ running, as the integration tests use docker to start an Elasticsearch server.
|
||||
|
||||
Integration tests are tests that have the Junit5 Tag `@Tag("integration-test")` on the test class. Normally this should not be set explicitly, but the annotation `@SpringIntegrationTest` should be used. This not only marks the test as integration test, but integrates an automatic setup of an Elasticsearch Testcontainer and integrate this with Spring, so
|
||||
that the required Beans can be automatically injected. Check _src/test/java/org/springframework/data/elasticsearch/JUnit5SampleRestClientBasedTests.java_ as a reference setup
|
||||
|
||||
== Mutation testing
|
||||
|
||||
The pom includes a plugin dependency to run mutation tests using [pitest](https://pitest.org/). These tests must be explicitly configured and run, they are not included in the normal build steps. Before pitest can run, a normal `./mvnw test` must be executed. The configuration excludes integration tests, only unit tests are considered.
|
||||
|
||||
|
||||
pitest can be run directly from the commandline
|
||||
----
|
||||
./mvnw org.pitest:pitest-maven:mutationCoverage
|
||||
----
|
||||
This will output an html report to _target/pit-reports/YYYYMMDDHHMI_.
|
||||
|
||||
To speed-up repeated analysis of the same codebase set the withHistory parameter to true.
|
||||
----
|
||||
./mvnw -DwithHistory org.pitest:pitest-maven:mutationCoverage
|
||||
----
|
||||
|
||||
The classes to test are defined either in the pom.xml or can be set on the commandline:
|
||||
----
|
||||
./mvnw -DwithHistory org.pitest:pitest-maven:mutationCoverage -DtargetClasses="org.springframework.data.elasticsearch.support.*"
|
||||
----
|
20
pom.xml
20
pom.xml
@ -366,6 +366,26 @@
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.pitest</groupId>
|
||||
<artifactId>pitest-maven</artifactId>
|
||||
<version>1.5.2</version>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.pitest</groupId>
|
||||
<artifactId>pitest-junit5-plugin</artifactId>
|
||||
<version>0.12</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<configuration>
|
||||
<excludedGroups>integration-test</excludedGroups>
|
||||
<targetClasses>
|
||||
<param>org.springframework.data.elasticsearch.core.geo.*</param>
|
||||
</targetClasses>
|
||||
<excludedMethods>toString</excludedMethods>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-assembly-plugin</artifactId>
|
||||
|
@ -0,0 +1,51 @@
|
||||
package org.springframework.data.elasticsearch.core.geo;
|
||||
|
||||
import static org.assertj.core.api.Assertions.*;
|
||||
|
||||
import org.junit.jupiter.api.DisplayName;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.data.geo.Point;
|
||||
|
||||
/**
|
||||
* @author P.J. Meisch (pj.meisch@sothawo.com)
|
||||
*/
|
||||
class GeoPointUnitTests {
|
||||
|
||||
@Test
|
||||
@DisplayName("should create From a Point")
|
||||
void shouldCreateFromAPoint() {
|
||||
Point point = new Point(8, 48);
|
||||
|
||||
GeoPoint geoPoint = GeoPoint.fromPoint(point);
|
||||
|
||||
assertThat(geoPoint).isEqualTo(new GeoPoint(48, 8));
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("should convert to a Point")
|
||||
void shouldConvertToAPoint() {
|
||||
|
||||
GeoPoint geoPoint = new GeoPoint(48, 8);
|
||||
|
||||
Point point = GeoPoint.toPoint(geoPoint);
|
||||
|
||||
assertThat(point).isEqualTo(new Point(8, 48));
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("should not be equal to a Point")
|
||||
void shouldNotBeEqualToAPoint() {
|
||||
|
||||
//noinspection AssertBetweenInconvertibleTypes
|
||||
assertThat(new GeoPoint(48, 8)).isNotEqualTo(new Point(8, 48));
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("should compare lat and lon values")
|
||||
void shouldCompareLatAndLonValues() {
|
||||
|
||||
GeoPoint geoPoint = new GeoPoint(48, 8);
|
||||
|
||||
assertThat(geoPoint).isEqualTo(new GeoPoint(48, 8));
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user