当前位置:  开发笔记 > 编程语言 > 正文

当结果变化时,您如何进行单元测试?

如何解决《当结果变化时,您如何进行单元测试?》经验,为你挑选了2个好方法。

我正在构建一个查询Web服务的应用程序.数据库中的数据会随着时间的推移而变化.如何为此类应用程序构建单元测试?

Web服务发送回xml或无搜索结果html页面.我无法真正改变网络服务.我的应用程序基本上使用HTTPURLConnection查询Web服务并将响应作为String获取.

希望有助于提供更多细节.



1> tvanfosson..:

使用您可以模拟的代理提取Web服务.让您的模拟Web服务返回表示正常数据和极端情况的各种值​​.还模拟从Web服务获取异常.确保您的代码在这些条件下工作,并且您可以合理地确定它将适用于Web服务提供的任何值.

看看jMock for Java mocking.



2> philant..:

严格来说,单元测试只能测试具有确定性行为的单元.

连接到外部Web服务器的测试集成测试.

解决方案是模拟HTTPURLConnection - 也就是说,在单元测试中创建一个类,该类派生自HTTPURLConnection类,并返回硬编码或可参数化的值.编辑:注意这可以在没有任何模拟框架的情况下完成.

查询Web服务器的类不应实例化HTTPURLConnection,而是通过参数接收它.在单元测试中,您创建HTTPURLConnectionMock,并将其传递给询问Web服务器的类,该服务器将使用它,因为它使用真正的HTTPURLConnection.在生产代码中,您创建一个真正的HTTPURLConnection并将其传递给该类.

您还可以使HTTPURLConnectionMock能够抛出IOException,以测试错误情况.只是有一个方法告诉它不要返回结果,而是在下一个请求时返回异常.

推荐阅读
无名有名我无名_593
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有