자바/리팩토링
[리팩토링 일기] doesNotThrowAnyException() 이 왜 동작하지 않아..
OverTheHorizon3410
2023. 11. 10. 16:11
@Nested
class DeleteTest {
@Test
@DisplayName("주문에 대한 삭제시 성공의 경우 exception 이 발생하지 않아야함")
void When_Delete_Expect_MethodReturnTrue() {
// given as @Mock
when(orderMapper.deleteSoftly(1L)).thenReturn(true);
// when - then
// exception 이 발생하지 않아야함
Assertions
.assertThatThrownBy(() -> orderPersistence.deleteOrder(1L))
.doesNotThrowAnyException();
}
}
public void deleteOrder(long id) {
boolean result = orderMapper.deleteSoftly(id);
if (!result) {
throw new RuntimeException("주문 삭제에 실패하였습니다.");
}
}
- 에서 보면 분명히 mapper 에서 true 를 반환하면
- 어떠한 에러도 던지지 않아야한다.
- 그런데
java.lang.AssertionError:
Expecting code to raise a throwable.
at com.psj.itembrowser.order.persistence.OrderPersistenceTest$DeleteTest.When_Delete_Expect_MethodReturnTrue(OrderPersistenceTest.java:46)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
...
- 왜 throwable 를 기대하는거지?
Uploaded by N2T