Open
Description
Description
Tests on methods returning Stream contain actual and expected results, but do not have any assertions to compare them.
To Reproduce
- Run the 'UTBotJava' project in IntelliJ Idea 2022.1.4
- Install one of the latest from main branch
- Open test generation dialog for utbot-sample/src/main/java/org/utbot/examples/stream/BaseStreamExample.java
- Select returningStreamExample method
- click Generate Tests
- check generated tests
Expected behavior
Need to compare expected and actual results for Streams in tests.
Actual behavior
There are actual and expected Objects generated containing Streams. But they are not compared.
Visual proofs (screenshots, logs, images)
package org.utbot.examples.stream;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.DisplayName;
import java.util.ArrayList;
import java.util.List;
import static org.utbot.runtime.utils.UtUtils.createInstance;
public class BaseStreamExampleTest {
///region Test suites for executable org.utbot.examples.stream.BaseStreamExample.returningStreamExample
///region SYMBOLIC EXECUTION ENGINE: SUCCESSFUL EXECUTIONS for method returningStreamExample(java.util.List)
/**
* @utbot.classUnderTest {@link BaseStreamExample}
* @utbot.methodUnderTest {@link BaseStreamExample#returningStreamExample(List)}
* @utbot.executesCondition {@code (list.isEmpty()): True}
* @utbot.invokes {@code {@link List#stream()}}
* @utbot.returnsFrom {@code return list.stream();}
*/
@Test
@DisplayName("returningStreamExample: list.isEmpty() : True -> return list.stream()")
public void testReturningStreamExample_ListIsEmpty() throws Exception {
BaseStreamExample baseStreamExample = new BaseStreamExample();
ArrayList list = new ArrayList();
Object actual = baseStreamExample.returningStreamExample(list);
Object expected = createInstance("java.util.stream.ReferencePipeline$Head");
}
/**
* @utbot.classUnderTest {@link BaseStreamExample}
* @utbot.methodUnderTest {@link BaseStreamExample#returningStreamExample(List)}
* @utbot.executesCondition {@code (list.isEmpty()): False}
* @utbot.invokes {@code {@link List#stream()}}
* @utbot.returnsFrom {@code return list.stream();}
*/
@Test
@DisplayName("returningStreamExample: list.isEmpty() : False -> return list.stream()")
public void testReturningStreamExample_NotListIsEmpty() throws Exception {
BaseStreamExample baseStreamExample = new BaseStreamExample();
ArrayList list = new ArrayList();
list.add(null);
list.add(null);
list.add(null);
list.add(null);
list.add(null);
list.add(null);
list.add(null);
list.add(null);
list.add(null);
list.add(null);
Object actual = baseStreamExample.returningStreamExample(list);
Object expected = createInstance("java.util.stream.ReferencePipeline$Head");
}
///endregion
///endregion
}
Environment
Windows 10 Pro
Gradle
JDK 11
Additional context
Probably related to #1034
Same for DoubleStreamExample.returningStreamExample
Metadata
Metadata
Assignees
Type
Projects
Status
Todo