@ExtendWith(MockitoExtension.class) public class TextServiceTests { @InjectMocks private TextService textService; @Test public void textService(){ Mockito.when(textService.getText()).thenThrow(new RuntimeException("异常")); Assertions.assertEquals(RuntimeException.class,textService.getText()); } }修改这个代码
时间: 2024-02-23 21:58:52 浏览: 101
Test_apk.rar_Brightness test apk_flex_test.apk
上面的代码有一个问题,即在断言中直接调用了 textService.getText() 方法,这会导致断言失败,因为该方法会抛出一个 RuntimeException 异常。为了避免这个问题,可以将 textService.getText() 方法放到一个 lambda 表达式中,然后在断言中调用 lambda 表达式。修改后的代码如下:
```
@ExtendWith(MockitoExtension.class)
public class TextServiceTests {
@InjectMocks
private TextService textService;
@Test
public void testTextService() {
Mockito.when(textService.getText()).thenThrow(new RuntimeException("异常"));
Assertions.assertThrows(RuntimeException.class, () -> textService.getText());
}
}
```
在这个修改后的代码中,使用了 Assertions.assertThrows() 方法对 textService.getText() 方法进行断言,期望其抛出 RuntimeException 异常。该方法的第一个参数是期望抛出的异常类型,第二个参数是一个 lambda 表达式,用于执行需要被测试的代码。如果实际上没有抛出该异常,就会导致断言失败。
阅读全文