gpt4 book ai didi

unit-testing - 通过输出完整性检查进行单元测试

转载 作者:行者123 更新时间:2023-11-28 20:24:48 25 4
gpt4 key购买 nike

我经常看到将固定输入输入程序的测试,通常通过 diff 对照固定(预期)输出检查生成的输出。如果差异被接受,则代码被视为通过测试。

问题:

1) 这是一个可接受的单元测试吗?

2) 通常单元测试输入是从文件系统中读入的并且很大xml 文件(也许它们代表一个非常大的系统)。是否应该进行单元测试触摸文件系统?或者单元测试会即时创建一个小输入并将其提供给要测试的代码?

3) 如何重构现有代码以进行单元测试?

最佳答案

输出差异

如果您的要求是生成具有一定准确度 的输出,那么这样的测试绝对没问题。最终决定权在您 - “此输出是否足够好?”

与文件系统对话

您不希望您的测试以依赖某些文件存在于某处的方式与文件系统对话,以便您的测试工作(例如,从配置文件中读取值)。这与测试输入资源有点不同——您通常可以将它们嵌入到您的测试(或至少是测试项目)中,将它们视为代码库的一部分,最重要的是它们通常应该被加载 < em>before 测试执行。例如,在测试相当大的 XML 时,将它们存储为单独的文件而不是代码文件中的字符串是合理的(有时可以这样做)。

重点是 - 您希望让您的测试独立且可重复。如果您可以通过在运行时加载文件来实现这一点——那可能没问题。然而,将它们作为代码库/资源的一部分仍然比标准系统文件位于某处更好。

重构

这个问题相当宽泛,但为了让您朝着正确的方向前进 - 您想要介绍更多 solid设计,decouple对象和单独的职责。更好的设计将使测试更容易,而且最重要的是——成为可能。就像我说的,这是一个广泛而复杂的话题,entire books献给它。

关于unit-testing - 通过输出完整性检查进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9229457/

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