我有一个异步的readFile(路径,回调)函数。
第一次读取文件时,它将从文件系统中读取文件。它会将内容保存到内存中。
之后,当读取相同的文件时,它只会从内存中返回内容,而不是再次访问文件系统。
我遇到的问题是如何测试这种机制在测试套件中工作,因为方法调用无法知道内容是从文件系统还是内存返回。
如何实现readFile(),以便它的缓存功能是可测试的?
答案 0 :(得分:2)
你嘲笑原生文件开启者。
答案 1 :(得分:1)
为什么不使用您的呼叫读取文件,然后修改文件,然后再次尝试读取该文件。如果它与第一个相同,并且与第二个不同,那么它将起作用。或者,您可以公开它缓存的变量,并修改它,并检查它。
答案 2 :(得分:0)
为什么我之前没想过这个。我可以将一个标志传递给回调(错误,内容,fromMemory),指示它是来自文件系统还是内存:)
答案 3 :(得分:0)
在代码级别,您应该检查内容是否在缓存中,如果没有,请转到文件并从缓存中读取else返回。 可以模拟此检查以在一种情况下返回true而在另一种情况下返回false,并且您可以围绕此检查编写测试。 希望我在这里有意义。