猿问

如何编写需要大量测试用例的 go 测试

假设我有一个包含大约 210000 个英文单词的列表。

  • 我需要使用所有这些 210000 个单词作为测试用例。

  • 我需要确保每次运行测试时都涵盖该列表中的每个单词。

问题是:在我的测试中存储这些词的最佳做法是什么?

我应该将所有这些单词保存在一个切片中(切片会不会太大?),还是应该将这些单词保存在一个外部文件中(如 words.txt)并在需要时逐行加载文件?


繁星coding
浏览 83回答 1
1回答

拉莫斯之舞

测试数据通常存储在一个命名的目录中testdata,以使其与其他源代码或数据文件分开(请参阅命令中的文档go help test)。该go工具会忽略该目录中的内容。无论如何,210,000 个单词应该只占用个位数兆字节的 RAM,这并不多。只需要一个辅助函数在每次测试之前从文件中读取单词(可能缓存它们),或者定义一个TestMain()函数来读取它们一次并将它们存储在全局变量中以供随后运行的测试访问。编辑testdata:关于最佳实践,即使数据不大,有时也最好将测试数据存储在其中。例如,有时我需要在测试用例中使用多个简短的 JSON 片段,并且可能不止一次使用它们。将它们存储在 的子目录下的适当命名的文件中testdata比使用一堆 JSON 片段乱扔 Go 代码更具可读性。轻微的性能损失在测试中通常不是问题。无论哪种方法使代码更易于理解,都可能是“最佳实践”。
随时随地看视频慕课网APP

相关分类

Go
我要回答