我需要有关单元测试的一些建议。我正在使用摩卡咖啡和正弦波。

我有一个处理所有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

07-26 05:20
查看更多