Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 获取EasyMock模拟对象以引发异常_Java_Unit Testing_Easymock - Fatal编程技术网

Java 获取EasyMock模拟对象以引发异常

Java 获取EasyMock模拟对象以引发异常,java,unit-testing,easymock,Java,Unit Testing,Easymock,我正在使用EasyMock为许多协作类编写单元测试。其中一个类(称之为Foo)打开到远程服务器的网络连接,并将服务器的XML响应解析为其他类可以使用的内容 目前,我的测试只包含这样的场景:一切都很好,远程服务器已启动并按预期运行并返回XML。但是,如果我可以模拟Foo,模拟远程服务器关闭时发生的情况,或者有其他问题导致Foo引发IOException,我会更高兴 我已经看过EasyMock API,但没有看到任何类似于要求模拟抛出异常的方法 对我来说,基于异常的测试并不是绝对必要的,但我很好奇E

我正在使用EasyMock为许多协作类编写单元测试。其中一个类(称之为
Foo
)打开到远程服务器的网络连接,并将服务器的XML响应解析为其他类可以使用的内容

目前,我的测试只包含这样的场景:一切都很好,远程服务器已启动并按预期运行并返回XML。但是,如果我可以模拟
Foo
,模拟远程服务器关闭时发生的情况,或者有其他问题导致
Foo
引发
IOException
,我会更高兴

我已经看过EasyMock API,但没有看到任何类似于要求模拟抛出异常的方法

对我来说,基于
异常的测试并不是绝对必要的,但我很好奇EasyMock是否可行,我认为这样测试
Foo
的公共契约会很有用

以前有人对EasyMock做过类似的事吗

参考资料

来自:

为了指定要抛出的异常(更确切地说:
Throwable
s),由
expectLastCall()
expect(T值)
返回的对象提供了方法
和行(Throwable Throwable)
。该方法必须在调用模拟对象后以记录状态调用,该对象指定要抛出的
Throwable

每个方法都可以抛出未经检查的异常(即,
RuntimeException
Error
及其所有子类)。选中的异常只能从实际抛出它们的方法中抛出

例如:

expectLastCall().andThrow(new HibernateException("Something terrible happened"));

expect(query.list()).andThrow(
        new HibernateException("Something terrible happened"));

您可以在easy mock中使用方法
和throw(Throwable Throwable)
。检查-标题处理异常

比如说

 expect(mock.voteForRemoval("Document"))
    .andThrow(new RuntimeException(), 4);

如果有人发现这对他们不起作用。。。确保使用EasyMock.replay