1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

AssertJでリストの包除関係をテスト

Posted at

一覧

リスト同士

結果が期待値… assertThat(actual).xxx(expected)
と同じ(順不同) containsOnlyElementsOf
containsExactlyInAnyOrderElementsOf
を全て含む containsAll
に全て含まれる isSubsetOf
をひとつでも含む containsAnyElementsOf
をひとつも含まない doesNotContainAnyElementsOf

リストと要素

結果が期待値… assertThat(actual).xxx(expected)
に含まれる isIn
に含まれない isNotIn
を(全て)含む contains
を(ひとつも)含まない doesNotContain

サンプルコード

全て最後のassertが失敗する。

src/test/java/ListTest.java
import org.junit.jupiter.api.Test;
import java.util.Arrays;
import static org.assertj.core.api.Assertions.assertThat;

public class ListTest {

	@Test
	void equalityTest() {
		assertThat(Arrays.asList(2, 3, 5)).containsOnlyElementsOf(Arrays.asList(3, 5, 2));
		assertThat(Arrays.asList(2, 3, 5)).containsOnlyElementsOf(Arrays.asList(2, 4, 6));
	}

	@Test
	void equalityTest2() {
		assertThat(Arrays.asList(2, 3, 5)).containsExactlyInAnyOrderElementsOf(Arrays.asList(3, 5, 2));
		assertThat(Arrays.asList(2, 3, 5)).containsExactlyInAnyOrderElementsOf(Arrays.asList(2, 4, 6));
	}

	@Test
	void supersetTest() {
		assertThat(Arrays.asList(2, 3, 5)).containsAll(Arrays.asList(3, 5));
		assertThat(Arrays.asList(2, 3, 5)).containsAll(Arrays.asList(3, 5, 2));
		assertThat(Arrays.asList(2, 3, 5)).containsAll(Arrays.asList(1, 2, 3, 4, 5, 6));
	}

	@Test
	void subsetTest() {
		assertThat(Arrays.asList(2, 3, 5)).isSubsetOf(Arrays.asList(1, 2, 3, 4, 5, 6));
		assertThat(Arrays.asList(2, 3, 5)).isSubsetOf(Arrays.asList(3, 5, 2));
		assertThat(Arrays.asList(2, 3, 5)).isSubsetOf(Arrays.asList(3, 5));
	}

	@Test
	void intersectionTest() {
		assertThat(Arrays.asList(2, 3, 5)).containsAnyElementsOf(Arrays.asList(2, 4, 6));
		assertThat(Arrays.asList(2, 3, 5)).containsAnyElementsOf(Arrays.asList(3, 5, 2));
		assertThat(Arrays.asList(2, 3, 5)).containsAnyElementsOf(Arrays.asList(1, 4, 6));
	}

	@Test
	void disjointTest() {
		assertThat(Arrays.asList(2, 3, 5)).doesNotContainAnyElementsOf(Arrays.asList(1, 4, 6));
		assertThat(Arrays.asList(2, 3, 5)).doesNotContainAnyElementsOf(Arrays.asList(2, 4, 6));
	}


	@Test
	void includedTest() {
		assertThat(3).isIn(Arrays.asList(2, 3, 5));
		assertThat(3).isIn(Arrays.asList(2, 4, 6));
	}

	@Test
	void excludedTest() {
		assertThat(3).isNotIn(Arrays.asList(2, 4, 6));
		assertThat(3).isNotIn(Arrays.asList(2, 3, 5));
	}


	@Test
	void includingTest() {
		assertThat(Arrays.asList(2, 3, 5)).contains(3);
		assertThat(Arrays.asList(2, 3, 5)).contains(1, 2, 4, 5, 6);
	}

	@Test
	void excludingTest() {
		assertThat(Arrays.asList(2, 3, 5)).doesNotContain(4);
		assertThat(Arrays.asList(2, 3, 5)).doesNotContain(2, 4, 6);
	}
}

バージョン

pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<groupId>com.example</groupId>
	<artifactId>test</artifactId>
	<version>1.0-SNAPSHOT</version>

	<dependencies>
		<dependency>
			<groupId>org.junit.jupiter</groupId>
			<artifactId>junit-jupiter-api</artifactId>
			<version>5.3.1</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.junit.jupiter</groupId>
			<artifactId>junit-jupiter-engine</artifactId>
			<version>5.3.1</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.assertj</groupId>
			<artifactId>assertj-core</artifactId>
			<version>3.11.1</version>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<artifactId>maven-surefire-plugin</artifactId>
				<version>2.22.1</version>
			</plugin>
		</plugins>
	</build>
</project>
1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?