尝试一些smalltalk + TDD +“良好做法”我遇到了一个丑陋的块:
如何在GNU Smalltalk中进行断言?
我只是在寻找一种简单的ifFalse: [Die]
种东西
答案 0 :(得分:2)
这是断言的代码:来自Squeak(我建议你使用而不是GNU):
assert: aBlock
"Throw an assertion error if aBlock does not evaluates to true."
aBlock value
ifFalse: [AssertionFailure signal: 'Assertion failed']
答案 1 :(得分:2)
以及 自我断言:[...一些块]
适用于街区和非块,因为将#value发送给Object会返回self。
答案 2 :(得分:0)
很简单。在您的测试方法中,您写道:
self assert: 1 + 1 = 2
但首先你需要创建一个测试类作为TestCase的子类(在Squeak中),例如:
TestCase subclass: #MyTest
在这里编写测试方法,其名称必须始终以'test'开头,例如:
testBasicArithmetics
self assert: 1 + 1 = 2
答案 3 :(得分:0)
上面已建议将#assert:
添加到Object
,而是将#assert
添加到BlockClosure
(或GNU中[] class
的任何内容Smalltalk中)。
assert
this value ifFalse: [AssertionFailure signal: 'Assertion failed']
因此在
中使用[ value notNil ] assert.
[ value > 0 ] assert.
[ list isEmpty not ] assert.
等等。