EasyMock模拟异常
时间:2020-02-23 14:41:18 来源:igfitidea点击:
EasyMock允许我们在调用特定方法时模拟异常。
我们可以使用andThrow()
方法和expect()
来做到这一点。
EasyMock模拟异常示例
假设我们有以下程序。
package com.theitroad.utils; public class StringUtils { public String toUpperCase(String s) { return s.toUpperCase(); } }
这是模拟StringUtils对象,然后将其方法存根以抛出IllegalArgumentException的示例。
package com.theitroad.easymock; import static org.easymock.EasyMock.*; import static org.junit.jupiter.api.Assertions.*; import org.junit.jupiter.api.Test; import com.theitroad.utils.StringUtils; public class EasyMockExceptionExample { @Test public void test() { StringUtils mock = mock(StringUtils.class); expect(mock.toUpperCase(null)).andThrow(new IllegalArgumentException("NULL is not a valid argument")); replay(mock); IllegalArgumentException exception = assertThrows(IllegalArgumentException.class, () -> mock.toUpperCase(null)); assertEquals("NULL is not a valid argument", exception.getMessage()); verify(mock); } }
我们正在使用JUnit 5断言来测试异常及其消息。