单元测试 Ajax 次调用
Unit Testing Ajax calls
我需要一些关于单元测试的建议。我正在使用 mocha 和 sinon。
我有一个处理所有 ajax 请求的 httpService 模块(由我编写)。正在测试的文件需要 httpService 模块。
我正在对一个函数进行单元测试,该函数调用同一文件中的私有函数,该函数又调用 httpService.get()
对此进行单元测试的最佳方法是什么?
我想到的选项:
1) 我可以使用 sinon FakeXMLHttpRequest 伪造 Ajax 响应。但是,因为 ajax 请求是从 httpService 模块发出的,所以我现在正在测试 httpService 模块的功能。这不是集成测试吗?
2) 我可以将 httpService 模块要求到我的单元测试文件中并存根 httpService.get() 函数。在我的单元测试中需要一个模块是否可以接受,即使它只是存根函数?
被测试的文件没有暴露任何其他内容。
还有其他选择吗?
提前致谢!
你是对的,你的选项 1 走得太远了。您的单元测试应仅限于测试您当前的功能。
选项 2 即将实现...我需要 httpService 模块,然后创建一个 sinon 间谍来监视 httpService.get 函数。
sinon.spy(对象,"method")
这样您就可以简单地检查您的方法是否调用了 http 服务。
您应该在此处阅读有关间谍的文档...
我需要一些关于单元测试的建议。我正在使用 mocha 和 sinon。
我有一个处理所有 ajax 请求的 httpService 模块(由我编写)。正在测试的文件需要 httpService 模块。
我正在对一个函数进行单元测试,该函数调用同一文件中的私有函数,该函数又调用 httpService.get()
对此进行单元测试的最佳方法是什么?
我想到的选项:
1) 我可以使用 sinon FakeXMLHttpRequest 伪造 Ajax 响应。但是,因为 ajax 请求是从 httpService 模块发出的,所以我现在正在测试 httpService 模块的功能。这不是集成测试吗?
2) 我可以将 httpService 模块要求到我的单元测试文件中并存根 httpService.get() 函数。在我的单元测试中需要一个模块是否可以接受,即使它只是存根函数?
被测试的文件没有暴露任何其他内容。
还有其他选择吗?
提前致谢!
你是对的,你的选项 1 走得太远了。您的单元测试应仅限于测试您当前的功能。
选项 2 即将实现...我需要 httpService 模块,然后创建一个 sinon 间谍来监视 httpService.get 函数。
sinon.spy(对象,"method")
这样您就可以简单地检查您的方法是否调用了 http 服务。
您应该在此处阅读有关间谍的文档...