The following code works:
@ExtendWith(MockitoExtension.class)
class BoardTest {
@Mock
Piece piece;
private Board instance;
@BeforeEach
void setUp() {
instance = new Board(piece, 10);
}
@Test
void getCostPerSpace() {
when(piece.getPiece()).thenReturn(PieceType.SQUARE);
double expected = 2d;
assertThat(instance.getCostPerSpace()).isEqualTo(expected);
}
}
The following code fails:
@ExtendWith(MockitoExtension.class)
class BoardTest {
@Mock(answer = RETURNS_DEEP_STUBS)
Piece piece;
private Board instance;
@BeforeEach
void setUp() {
instance = new Board(piece, 10);
}
@Test
void getCostPerSpace() {
when(piece.getPiece().getCostPerPieceSpace()).thenReturn(2.5d);
double expected = 2d;
assertThat(instance.getCostPerSpace()).isEqualTo(expected);
}
}
with the following error:
You are seeing this disclaimer because Mockito is configured to create inlined mocks.
You can learn about inline mocks and their limitations under item #39 of the Mockito class javadoc.
Underlying exception : org.mockito.exceptions.base.MockitoException: Unsupported settings with this type 'com.senorpez.game.PieceType'
org.mockito.exceptions.base.MockitoException:
Mockito cannot mock this class: class com.senorpez.game.PieceType
If you're not sure why you're getting this error, please open an issue on GitHub.
Mockito Version: 5.3.0
The following code works:
The following code fails:
with the following error:
Mockito Version: 5.3.0