gpt4 book ai didi

unit-testing - 使用随机数据进行单元测试

转载 作者:行者123 更新时间:2023-11-28 19:55:08 39 4
gpt4 key购买 nike

我读到在单元测试中生成随机数据通常是个坏主意(我明白为什么),但是测试随机数据然后从随机测试构建固定单元测试用例发现的错误似乎不错。但是我不明白如何很好地组织它。我的问题实际上与特定的编程语言或特定的单元测试框架无关,所以我将使用 python 和一些伪单元测试框架。以下是我对编码的看法:

def random_test_cases():
datasets = [
dataset1,
dataset2,
...
datasetn
]
for dataset in datasets:
assertTrue(...)
assertEquals(...)
assertRaises(...)
# and so on

问题是:当这个测试用例失败时,我无法确定是哪个数据集导致了失败。我看到了两种解决方法:

  1. 为每个数据集创建一个测试用例——问题是测试用例的负载和代码重复。
  2. 通常,测试框架让我们将消息传递给断言函数(在我的示例中,我可以执行类似assertTrue(..., message = str(dataset)) 的操作)。问题是我应该将这样的消息传递给每个断言,这看起来也不太优雅。

有更简单的方法吗?

最佳答案

我仍然认为这是个坏主意。

单元测试需要简单明了。给定相同的代码段和相同的单元测试,您应该能够无限地运行它并且永远不会得到不同的响应,除非有外部因素起作用。与此背道而驰的目标会增加自动化的维护成本,从而达不到目的。

在维护方面之外,对我来说似乎很懒惰。如果您考虑到您的功能并了解正面和负面测试用例,那么开发单元测试就很简单了。

我也不同意展示如何在同一个测试用例中执行多个测试用例的用户。当测试失败时,您应该能够立即知道是哪个测试失败了并且知道失败的原因。测试应尽可能简单,并尽可能简洁/与被测代码相关。

关于unit-testing - 使用随机数据进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11553078/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com