繁体   English   中英

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

[英]How to write testable code for a special test case

我有一个异步readFile(path,callback)函数。

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

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

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

我如何实现readFile()使其可测试的缓存功能?

你嘲笑原生文件开启者。

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM