gpt4 book ai didi

unit-testing - 测试具体包装类

转载 作者:行者123 更新时间:2023-12-01 23:48:18 24 4
gpt4 key购买 nike

如果创建一个包含静态方法签名的接口(interface),我将有办法测试依赖于这些静态方法的类。

但是我将如何测试实现接口(interface)并包装那些静态方法的具体包装类?

我只是不测试具体的包装器类吗?

似乎包装静态方法只是将问题转移到了别处。我还有一些类,包装类,很难测试。

最佳答案

您走在正确的轨道上,但您并没有将问题转移到其他地方——您只是将其隔离以防止该问题在您的代码库和其他测试中泄漏。如果您对包装行为做出了错误的假设或忽略了证明这些假设,我只会将其视为一个问题。需要进行一些测试,但难度不同。您选择在多大程度上检验这些假设将是您需要做出的权衡。

对于某些场景,可以测试包装器,但需要您可以控制的物理依赖性。例如,修改文件的静态方法将需要您花时间设置文件系统,或者从 Web 服务器下载文件的帮助类。我喜欢将这些测试视为“集成测试”而不是“单元测试”,因为它们作用于它们的依赖关系而不是孤立运行。由于这些测试可能需要更长的时间来执行该标准测试,因此您可能希望将它们排除在外并以低于更快的单元测试的频率运行它们。

对于其他场景,你可能不付出相当大的努力就写不出测试。例如,您可能已将在单独窗口中显示对话框的逻辑包装起来——在代码中测试此逻辑需要大量工作,但启动应用程序并验证其是否正常工作可能就足够了。您会在代码覆盖率上受到打击,但对我来说这是一个可以接受的权衡。

关键的挑战是理解包装行为的假设——例如,如果网络请求格式错误或网络连接丢失,远程服务器会抛出什么类型的异常?如果您没有正确捕捉这些假设,这些错误将涌入您代码的其他区域。

关于unit-testing - 测试具体包装类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28016591/

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