Skip to content

Fuzzing is generating a false test for Random #1135

Description

@alisevych

Description

Fuzzing is generating a test for Random without mocks - when Mock everything outside class is checked.
The test asserts the value returned by Random and fails.

To Reproduce

  1. Run a project in IntelliJ Idea 2022.1.3 - 2022.2.2
  2. Install RC plugin build
  3. Set Fuzzing to 100% (in File -> Settings -> Tools -> UnitTestBot)
  4. Generate tests with UnitTestBot for utbot-sample/src/main/java/org/utbot/examples/mock/MockRandomExamples.java
    for useSecureRandom() - check Mock everything outside class.

Expected behavior

There should be only valid tests generated.

Possible solutions

Fuzzer can use mock Random(?)
Generated tests should be double-checks that they return same results(?)
other solution(?)

Actual behavior

Fuzzing is generating a test for Random without mocks. It asserts the value returned by Random and fails.

Visual proofs

The following test is generated by Fuzzer:

    ///region FUZZER: SUCCESSFUL EXECUTIONS for method useSecureRandom()

    @Test
    @DisplayName("useSecureRandom: arg_0 = MockRandomExamples() -> return 1")
    public void testUseSecureRandomReturnsOne() {
        MockRandomExamples mockRandomExamples = new MockRandomExamples();

        int actual = mockRandomExamples.useSecureRandom();

        assertEquals(1, actual);
    }
    ///endregion

Environment

Windows 10 Pro
IntelliJ IDEA 2022.2.2

Additional context

Originally posted by @alisevych in #1102 (comment)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions