【问题标题】:What did Joe Armstrong refer to by "there are more advanced techniques" for unit testing乔·阿姆斯特朗 (Joe Armstrong) 所说的单元测试“有更先进的技术”指的是什么
【发布时间】:2020-09-28 23:45:49
【问题描述】:

Joe Armstrong 所说的“你根本不应该编写测试用例,你可以使用比愚蠢的旧测试用例更先进的技术”是指什么?

那些更先进的技术是什么?

来源:A Guide for the Perplexed

此外,他甚至建议不要重用代码而是重写它。这与我的学校教给我的一切背道而驰。所以我想知道这句话背后的原因是什么。

【问题讨论】:

  • 如果这是 Erlang 成名的 Joe Armstrong,那么线索可能是 Erlang 是一种函数式编程语言,理论上可以证明它是正确的。

标签: unit-testing code-reuse


【解决方案1】:

对于测试用例:做函数式编程的人倾向于鄙视单元测试。 Rich Hickey 引用了一段话,他将使用单元测试与依靠弹开护栏来保持在路上的汽车进行比较。他有一个观点,OO 企业代码是如此复杂和混乱,这几乎就是我们所做的。理论是,如果你的 FP 做得对,你应该主要编写小的纯函数,它们的作用是不言而喻的。在这种情况下,单元测试级别的测试不会增加太多。

(我不能肯定,但我不知道有什么可以让我认为 Armstrong 特别专注于证明程序的正确性。Erlang 没有编译时类型检查,这在我看来好像它会使证明正确性变得更加困难。)

对于 rewrite-not-reuse,我认为这个想法是,价值不在于软件,而在于您的理解。如果你重复使用很多,你可能会发现自己拼凑在一起,每一个都是你第一次尝试找出一些东西。每当我们第一次构建某些东西时,我们都不知道自己在做什么,如果幸运的话,它可能大部分都可以工作,但这几乎是垃圾。重写提供了建立联系和学习的机会,最好以新的眼光重新审视问题,并有机会创造出更清洁、更好的东西。

【讨论】:

    猜你喜欢
    • 2022-06-15
    • 1970-01-01
    • 2022-11-13
    • 1970-01-01
    • 1970-01-01
    • 2022-12-11
    • 2012-07-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多