Description
Description
Unneeded sophistication of mockConstruction:
switch
statement in mockConstruction
definition and mockClassCounter
can be avoided here.
To Reproduce
- Install one of the latest plugin builds from main into IntelliJ Idea 2022.2.*
- Open/clone "utbot" project
- Use plugin to generate tests for
org.utbot.examples.mock.provider.impl.ProviderImpl#provideObject
- Open the generated test
Expected behavior
switch
statement in mockConstruction
definition and mockClassCounter
can be avoided here.
The constructed Object will be the same for all instantiations.
Actual behavior
There is unnecessary switch
statement and mockClassCounter
used in `mockConstruction.
It is confusing for a user.
Visual proofs (screenshots, logs, images)
///region SYMBOLIC EXECUTION: SUCCESSFUL EXECUTIONS for method provideObject()
/**
* @utbot.classUnderTest {@link ProviderImpl}
* @utbot.methodUnderTest {@link ProviderImpl#provideObject()}
* @utbot.returnsFrom {@code return new ExampleClass(0);}
*/
@Test
@DisplayName("provideObject: -> return new ExampleClass(0)")
public void testProvideObject_Return() {
org.mockito.MockedConstruction mockedConstruction = null;
try {
java.util.concurrent.atomic.AtomicInteger mockClassCounter = new java.util.concurrent.atomic.AtomicInteger();
mockedConstruction = mockConstruction(ExampleClass.class, (ExampleClass ExampleClassMock, org.mockito.MockedConstruction.Context context) -> {
switch (mockClassCounter.get()) {
case 0:
break;
}
mockClassCounter.getAndIncrement();
});
ProviderImpl providerImpl = new ProviderImpl();
ExampleClass actual = providerImpl.provideObject();
ExampleClass expectedMock = mock(ExampleClass.class);
expectedMock.field = 0;
// org.utbot.examples.mock.service.impl.ExampleClass has overridden equals method
assertEquals(expectedMock, actual);
} finally {
mockedConstruction.close();
}
}
///endregion
Environment
Windows 10 Pro
IntelliJ IDEA 2022.2.4
org.mockito:mockito-core:4.2.0
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
Done