Skip to content

JUnit 5 ParameterizedTest creates single approval file for all test cases #126

@beatngu13

Description

@beatngu13

Given these dependencies:

<dependency>
	<groupId>org.junit.jupiter</groupId>
	<artifactId>junit-jupiter</artifactId>
	<version>5.7.0</version>
	<scope>test</scope>
</dependency>

<dependency>
	<groupId>com.approvaltests</groupId>
	<artifactId>approvaltests</artifactId>
	<version>9.3.0</version>
	<scope>test</scope>
</dependency>

And this test:

class MyParameterizedApprovalTest {

	enum MyEnum {
		FOO, BAR
	}

	@ParameterizedTest
	@EnumSource(MyEnum.class)
	void testWithEnumSource(MyEnum e) {
		Approvals.verify(e);
	}

	@ParameterizedTest
	@ValueSource(strings = {"foo", "bar"})
	void testWithValueSource(String s) {
		Approvals.verify(s);
	}

}

Creates a single approval file for all test cases of a parameterized test:

grafik

The content is the result of the last parameter, i.e. "bar" for testWithValueSource and "BAR" for testWithEnumSource.

My assumption was that this has been fixed as part of #36 / #90 (see JUnit5StackTraceNamerTest)?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions