我正在体验TDD,我需要知道如何通过AJAX对将通过js调用的web服务进行单元测试。我已经查找了如何模拟ajax调用并单独测试webservice但我意识到如果其他人更改了webservice中的参数类型或数量并完全忘记更改ajax调用中的参数。有没有办法在测试期间连接两者,以便它们将依赖于彼此,因为即使我更改web服务中的参数,即使ajax调用具有与web服务不同的参数,它们也只是简单地通过测试。
编辑:
JS和C#的测试是分开的,但如果没有进行测试的人进入并编辑其中一个C#方法并测试并忘记调用它的AJAX调用,那么所有测试都将通过,没有人会知道在用户点击或转到它之前有错误。
答案 0 :(得分:0)
单元测试意味着一次测试单个独立的模块化单元。所以Jquery调用和webservice响应是这里的两个独立单元(客户端和服务器)。
Junit范围是测试具有所有逻辑输入的模块化单元。尝试识别JQuery产生的所有可能的请求,然后模拟测试Web服务的请求。
答案 1 :(得分:0)
您的目标不应该是对Javascript中的AJAX功能进行单元测试 - 而是您的目标应该是测试您的Web服务是否表现出预期的行为,以及您的JavaScript是否使用正确的格式进行预期的AJAX调用。
大多数服务器技术允许您实例化您的Web服务类,而无需实际托管/绑定任何内容。然后,您可以通过单元测试直接调用服务上的方法。
如果您对AJAX调用有一个可靠的抽象,可以使用依赖注入模拟出来,那么可以更轻松地对您的JavaScript进行单元测试。