我需要有关单元测试的一些建议。我正在使用摩卡咖啡和正弦波。
我有一个处理所有ajax请求(由我编写)的httpService模块。被测试的文件需要httpService模块。
我正在对一个函数进行单元测试,该函数在同一文件中调用私有函数,该文件又调用httpService.get()
对此进行单元测试的最佳方法是什么?
我提出的选项:
1)我可以使用sinon FakeXMLHttpRequest来伪造Ajax响应。但是,因为ajax请求是从httpService模块发出的,所以我现在正在测试httpService模块的功能。这不是集成测试吗?
2)我可能需要将httpService模块放入我的单元测试文件中,并将httpService.get()函数存根。即使只是存根功能,也需要将模块放入我的单元测试中吗?
正在测试的文件没有其他内容。
还有其他选择吗?
提前致谢!
最佳答案
您的选择1太过正确了,您是对的。您的单元测试应仅限于测试当前功能。
选项2到达那里...我需要httpService模块,但随后创建了一个sinon间谍来监视httpService.get函数。
sinon.spy(object,“ method”)
这样,您可以简单地检查您的方法是否导致了对http服务的调用。
您应该在此处阅读有关间谍的文档...
Sinon spies