我正在编写 Junit(4.x) 测试来测试 Web 应用程序关闭时会发生什么。
当我在浏览器中点击该网址时,我收到一条消息“连接被拒绝”。
我不确定在断言语句中要检查什么。
我要检查此消息的 header 吗? -- urlConnection.getResponseMessage() 或
只需在测试用例之前说 (expected = java.net.ConnectException) 即可。我觉得后者不够具体。
编辑:现在,我正在使用 (expected = java.net.ConnectException) 和assertEquals(502, urlConnection.getResponseCode) 的组合。测试正在通过。
谢谢, 普拉秋莎。
最佳答案
首先,您的单元测试不应该过多依赖外部实体。您所描述的实际上是一个集成测试。
在经典的单元测试中,您可以使用例如来设置此场景模拟 HttpUrlConnection
。可以对其进行编程,以从所需的方法调用中抛出异常。如果您对简单地确认抛出的异常类型不满意,您始终可以在测试方法中捕获它,然后断言响应消息或您感兴趣的任何内容。
但是,从您的帖子中我不清楚您实际上在测试什么:依赖于服务器的 Web 客户端?一个网络应用程序调用另一个网络应用程序?不同的测试可能适合不同的场景。
关于java - Junit测试用例: Connection refused case,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3656640/