gpt4 book ai didi

testing - (错误)理解 Smalltalk 和 TDD

转载 作者:行者123 更新时间:2023-11-28 19:45:21 26 4
gpt4 key购买 nike

我正在尝试边做边学 Smalltalk,因此我通过构建一个简单的“Matrix”类来掌握语法和风格。

首先,如果链接到一个好的 Smalltak 教程(尽管这完全是可选的),我将不胜感激,最好是不涉及使用 GUI 的教程(我宁愿输入我的 .sts 而不是在层次结构浏览器中四处游荡,将方法放在它们的位置上。

然后,在 TDD 上:对于这个项目,我正在调用 gst-sunit -f matrix.st -f matrix-test.st BaseMatrixTests,肯定会有比这更好的方法。 有吗?

最后,关于断言:我正在尝试编写一个方法并将断言放入其中,例如:

Matrix>>multiplyBy: anotherMatrix [
[ self isNotEmpty ] assert.
"Do Multiplication"
[ result dimensions = (self height)@(anotherMatrix width) ] assert.
]

我怎样才能做那种断言?

编辑:明确标记的问题。

最佳答案

好的,这里有几件。

首先,我同意 markusQ 的观点,尽管我完全赞同:我宁愿能够直接在 EMACS 中编写代码。 Bt 关于 Smalltalk 的一件事是,对于不想按照 Smalltalk 方式做事的人来说,它确实是非常无情的。在这种情况下,Smalltalk Way 是使用浏览器。

其次,这是 Smalltalk Way 的部分原因是 Smalltalk 在很多方面不像其他语言。实际上,出于所有实际目的,没有办法制作一个“单独的”Smalltalk 可执行文件:您所能做的就是制作一个 Smalltalk 图像,并添加一些您自己的代码的相对较小的片段。当您使用外部编辑器编写代码时,就像您显示的语法一样,您实际上只是在手动输入一种比 XML 更容易手动输入的导入/导出格式。但只是一点点。

道德是,用 Smalltalk 的方式,用浏览器。

关于 Smalltalk 有一些相当不错的教程。我通常使用 Squeak,所以我看到的都是使用 Squeak,如 here .

在 TDD 上,您很幸运,因为 Smalltalk 是第一个获得 xUnit 的地方。对于 Smalltalk,它称为 SUnit,并且有一个很好的教程 here .

您在那里使用的断言似乎基本上是一种“按契约(Contract)设计”的方法。已经完成了将契约(Contract)设计添加到 Smalltalk 的工作,如 here .对于简单的断言,您可以添加代码,如 this SO question .

assert: aBlock 
"Throw an assertion error if aBlock does not evaluates to true."
aBlock value
ifFalse: [AssertionFailure signal: 'Assertion failed']

关于testing - (错误)理解 Smalltalk 和 TDD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/670347/

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