[리팩토링 일기] doesNotThrowAnyException() 이 왜 동작하지 않아..

@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