在编写测试时,是否需要为文件mainpulation函数提供文件?

时间:2015-10-13 15:38:43

标签: node.js unit-testing testing

我是测试新手,我想测试一个函数,该函数接受文件中的一些数据,并按每个换行符分割数据。这是在nodejs。

我有一个单独的函数,它将读取文件并将其分配给变量。这是一个单独的模块,所以我没有具体测试这个功能。我的函数获取结果数据对象并返回一个数组。该文件本身来自我的模块之外的服务,所以我不一定有权访问它,需要运行该服务来获取该文件。所以我有一些关于如何编写这个测试的一般测试问题。

  • 在编写测试时,我是否需要传递一个文件才能进行拆分?
  • 如果我需要提供一个文件,我应该在test目录中有一个文件来模拟有问题的文件吗?
  • 现在我的测试调用了将数据传递给我正在编写测试的函数的实际函数,这是错误的方法吗?

1 个答案:

答案 0 :(得分:0)

  

编写测试时,我是否需要传递一个文件才能拆分?

听起来像是这样,实现100%自动化测试。在自动化测试中使用的小测试文件应该非常干净并且仍然可以很快运行。有些人认为这些不是纯单元测试/ TDD,因为它执行IO,但我通常喜欢它,因为使用小文件的测试仍然可以非常高效。

  

如果我需要提供一个文件,我的test目录中应该有一个文件   模拟有问题的文件?

我想是的,这是一个干净的解决方案。我甚至可以将这些测试放在一个单独的集成测试用例中。

  

现在我的测试调用将数据传递给的实际函数   我正在编写测试的函数,这是错误的方法吗?

也许,如果没有看到您的代码,很难说清楚。单元测试/ TDD旨在保持测试仅测试离散单元。如果这是调用外部服务,则可能是"错误"

测试你的" main"应该很容易。功能。如果你的main函数接受一个文件读取的字符串或流,对它执行一些操作并返回一个数组,它应该非常容易隔离和测试。

我认为测试加载/解析文件并返回其内容/流的函数是有价值的。哪个可以在测试目录中使用测试文件。我认为单元测试的无IO建议主要是为了快速保持速度,所以只要它不会减慢测试速度就可以接受,(对我来说)