【问题标题】:How to unit test Webservices methods that are called from AJAX如何对从 AJAX 调用的 Web 服务方法进行单元测试
【发布时间】:2014-02-19 21:16:18
【问题描述】:

我正在体验 TDD,我需要知道如何对将通过 AJAX 在 js 中调用的 Web 服务进行单元测试。我已经查看了如何模拟 ajax 调用并单独对 web 服务进行单元测试,但我意识到如果其他人更改 web 服务中的参数类型或数量并且完全忘记更改 ajax 调用中的参数会怎样。有没有办法在测试期间将两者连接起来,以便它们相互依赖,因为目前即使我更改 web 服务中的参数,即使 ajax 调用与 web 服务具有不同的参数,它们也只会简单地通过测试。

编辑:

JS 和 C# 的测试是分开的,但是如果没有进行测试的人进入那里并编辑其中一个 C# 方法并进行测试并忘记了调用它的 AJAX 调用,那么所有测试都会通过,没有人会通过在用户点击它或转到它之前知道存在错误。

【问题讨论】:

    标签: javascript ajax web-services unit-testing


    【解决方案1】:

    单元测试是指一次测试单个独立的模块化单元。所以 Jquery 调用和 webservice 响应在这里是两个独立的单元(客户端和服务器)。

    Junit 范围是测试具有所有逻辑输入的模块化单元。尝试识别所有可能来自 JQuery 的请求,然后模拟请求以测试 Web 服务。

    【讨论】:

      【解决方案2】:

      您的目标不应该是对 Javascript 中的 AJAX 函数是否正常工作进行单元测试,而应该是测试您的 Web 服务是否表现出预期的行为,以及您的 JavaScript 是否使用正确的格式进行预期的 AJAX 调用。

      大多数服务器技术允许您实例化您的 Web 服务类,而无需将其实际托管/绑定到任何东西。然后,您可以通过单元测试直接调用服务上的方法。

      如果您对 AJAX 调用有一个可靠的抽象,可以使用依赖注入来模拟出来,那么您的 JavaScript 单元测试会变得更容易。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-01-05
        • 1970-01-01
        相关资源
        最近更新 更多