Junit测试案例:连接拒绝案例

时间:2010-09-07 07:38:37

标签: java unit-testing connection junit4

我正在编写一个Junit(4.x)测试来测试Web应用程序关闭时会发生什么。

当我点击浏览器中的网址时,收到一条消息“拒绝连接”。

我不确定在断言语句中要检查什么。

我是否检查此邮件的标头? - urlConnection.getResponseMessage()或

在测试用例之前说出(expected = java.net.ConnectException)。我觉得后者不够具体。

编辑:现在,我正在使用(expected = java.net.ConnectException)和assertEquals(502,urlConnection.getResponseCode)的组合。测试正在通过。

谢谢, Pratyusha。

2 个答案:

答案 0 :(得分:2)

首先,您的单元测试不应该太依赖于外部实体。您所描述的是集成测试

在经典单元测试中,您可以使用以下方法设置此方案:模拟HttpUrlConnection。这可以编程为从所需的方法调用中抛出异常。如果您只是通过简单地确认抛出的异常类型而感到高兴,您可以始终在测试方法中捕获它,然后断言响应消息或您感兴趣的任何内容。

但是,从您的帖子中我不清楚您实际测试的是什么:依赖于服务器的Web客户端?一个调用另一个Web应用程序的Web应用程序不同的测试可能适用于不同的场景。

答案 1 :(得分:0)

junit中的集成测试很好。许多广泛使用的开源项目都使用这种方法。有关此方法的示例,请参阅CXF或Arquillian。

对于您的问题......您需要确定所需的行为,然后对此进行测试。

例如,在这种情况下,您可能希望测试服务器返回的响应代码。或者,如果“连接被拒绝”确实是期望的行为,那么测试(expected = java.net.ConnectException)就足够了。