如何为特殊测试用例编写可测试代码

时间:2012-02-25 02:41:05

标签: javascript design-patterns testing node.js

我有一个异步的readFile(路径,回调)函数。

第一次读取文件时,它将从文件系统中读取文件。它会将内容保存到内存中。

之后,当读取相同的文件时,它只会从内存中返回内容,而不是再次访问文件系统。

我遇到的问题是如何测试这种机制在测试套件中工作,因为方法调用无法知道内容是从文件系统还是内存返回。

如何实现readFile(),以便它的缓存功能是可测试的?

4 个答案:

答案 0 :(得分:2)

你嘲笑原生文件开启者。

答案 1 :(得分:1)

为什么不使用您的呼叫读取文件,然后修改文件,然后再次尝试读取该文件。如果它与第一个相同,并且与第二个不同,那么它将起作用。或者,您可以公开它缓存的变量,并修改它,并检查它。

答案 2 :(得分:0)

为什么我之前没想过这个。我可以将一个标志传递给回调(错误,内容,fromMemory),指示它是来自文件系统还是内存:)

答案 3 :(得分:0)

在代码级别,您应该检查内容是否在缓存中,如果没有,请转到文件并从缓存中读取else返回。 可以模拟此检查以在一种情况下返回true而在另一种情况下返回false,并且您可以围绕此检查编写测试。 希望我在这里有意义。