2015-10-13 46 views
0

我是新来测试,我想测试一个函数,它将接受来自文件的一些数据和每个换行符分割数据。这是在nodejs中。在编写测试时,是否需要提供文件mainpulation函数的文件?

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

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

回答

0

在编写我的测试时,我是否需要传递一个文件来拆分它?

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

如果我需要给一个文件,我应该在我的测试目录中有一个文件到 模拟有问题的文件?

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

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

也许,很难说不看你的代码。单元测试/ TDD旨在保持仅测试离散单元的测试。如果这是呼叫外部服务,它可能是“错误的”

应该很容易测试你的“主要”功能。如果你的主函数需要一个字符串或者一个被文件读取的流,对它执行一些操作并返回一个数组,它应该是非常容易被隔离和测试的。

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

+0

谢谢你,这是非常翔实的。 – eignhpants

相关问题