Skip to content

Parametrized test with contradictory asserts: assertNotNull and assertNull #2390

@tyuldashev

Description

@tyuldashev

Description
When generating parametrized test for Graph class there are two opposite asserts appears in one of the tests: assertNotNull and assertNull.

To Reproduce

Steps to reproduce the behavior:

  1. Open the 'UTBot Java' project in IntelliJ Idea
  2. Use plugin to generate parametrized tests for org.utbot.examples.algorithms.Graph#getAdj. No matter if it's JUnit5 or TestNG.
  3. Open the generated test

Expected behavior
Generated test would looks something like that. One assert type in each if/else branch

    @ParameterizedTest
    @MethodSource("org.utbot.examples.algorithms.GraphTest#provideDataForGetAdj")
    public void parameterizedTestsForGetAdj(Graph graph, int[][] expectedResult) {
        int[][] actual = graph.getAdj();

        if (expectedResult == null) {
            assertNull(actual);
        } else {
            assertNotNull(actual);
        }
    }

Actual behavior
Please note that else branch contains two opposite assertions.

    @ParameterizedTest
    @MethodSource("org.utbot.examples.algorithms.GraphTest#provideDataForGetAdj")
    public void parameterizedTestsForGetAdj(Graph graph, int[][] expectedResult) {
        int[][] actual = graph.getAdj();

        if (expectedResult == null) {
            assertNull(actual);
        } else {
            assertNotNull(actual);
            assertNull(actual);
        }
    }

Additional context

The problem is pre-existing, it also exists in 2022.2.5.

Metadata

Metadata

Assignees

Labels

comp-codegenIssue is related to code generatorctg-bugIssue is a bug

Type

No type

Projects

Status

Todo

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions