gpt4 book ai didi

parameters - 如何有效地对动态语言的参数进行单元测试?

转载 作者:行者123 更新时间:2023-12-05 01:38:13 26 4
gpt4 key购买 nike

This answer关于您如何处理动态语言中的参数类型与 Java 中的静态语言(我的观点被告知或变形 - 如您所愿),我从未理解过的事情让我感到不安。

给定一个在动态语言中接受参数 bar 的方法 foo,在编译时没有强制执行 bar 类型。上面链接的答案(以及我通常看到的答案)是您需要使用动态语言正确地进行单元测试。

但在某些时候,单元外的某些东西会调用该方法。假设这是一个重量级对象,将在使用它的类的任何单元测试中被模拟。现在你有很多调用这个方法的类,你需要改变类型。为简单起见,它过去接受一个数字,但现在需要一个字母数字,并且您需要使用一种专门用于字符串的方法,而不是用于具有新要求的数字对象。

您如何更改它并知道调用代码将被修复?当然,如果您只是更改它,您的单元测试将失败,但由于您需要故意更改它,表面上您会修复您的单元测试。你怎么知道修复调用代码?我的意思不仅仅是您在概念上了解多少,我的意思是您如何知道您已经找到所有来电者并且真的可以说它已更改。

似乎只有非常全面的集成测试才能给您这样的保证。我错过了什么吗?

最佳答案

我认为您已经给出了一个很好的具体示例来说明静态类型的优势之一。动态类型要求您自己找到所有这些调用位置。这实际上并不难——它只是在您的代码中进行文本搜索。这就是权衡:编译器可以交叉引用您的代码并确保一切匹配,而不是在您的代码中使用分散注意力的类型标签。

关于parameters - 如何有效地对动态语言的参数进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1475116/

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