如何使用需要样本文件的I / O测试方法?

时间:2019-07-09 07:39:40

标签: typescript unit-testing jasmine

我试图用茉莉花写一个测试方法来读取文件并对其进行处理。此方法有两个步骤(读取文件之外):验证文件然后进行处理。我想测试文件无效时该方法是否引发异常。

对于我的测试,我需要示例文件进行测试,因此我想知道生成/存储代表性测试文件的最佳实践是什么。我应该手动创建这些并将其保存在测试中吗?我应该写一些东西来生成要测试的文件吗?写一些可以生成文件数据进行测试的东西吗?完全还有其他东西吗?

从其他问题(Unit Testing File I/O)可以看出,我不需要测试I / O本身,仅需要测试方法的功能即可,但是我确实需要一些数据来测试该方法。

1 个答案:

答案 0 :(得分:0)

正如您所描述的,您要测试的是文件的内容已正确验证。文件内容只是数据,对于验证过程,它不应该影响数据的实际来源。也就是说,“文件内容”也可以作为数据提供,实际上是直接从测试代码提供的:

  • 在最简单的情况下,数据可以只是常量字符串或字节数组。
  • 如果变得更加复杂,则可以使用一些测试助手方法来创建数据。
  • 如果不违反任何测试目标,您甚至可以考虑使用负责创建数据的实际组件。

这要求您能够以某种方式绕过文件内容的读取,例如通过模拟文件访问操作。或者,通过将文件的读取与内容的验证分开,以便验证部分已经获取了一些内存中的数据进行验证,并且可以分别进行测试。

您的问题尚不清楚您的方案是否允许这样做。但是,如果可能的话,它具有一些不错的属性:您的测试更易于维护,因为您无需处理大量文件,而是将所有内容都放在一个位置(即包含测试的文件)。您较少依赖文件系统问题,例如缺少写入或读取访问权限,文件名区分大小写等等。