在测试中检查类的文本表示?

Baa*_*rud 3 smalltalk squeak pharo

让我说我在Pharo Smalltalk中创建了一个MyClass类......

如果我在Workspace中写道:

MyClass新.

并选择print-it(Ctrl-P),我得到:

一个MyClass

通过对MyClassprintOn:方法进行一些修改,我可以获得更多,例如:

一个值为5的MyClass

+++

所以我的问题是......我怎么能做一个测试(TestCase类的实例)来检查MyObject的文本表示- 如果我做了"MyObject new"和Print-It,我会得到的是它的假设成为?

我如何得到文本表示,以便我可以根据它应该是什么来检查字符串常量,当我在我的测试中执行自我 断言:相等:(或类似的东西)时?

例如,使用我的cutomized printOn:方法后,它看起来像

一个值为5的MyClass

对不起这样一个新手问题,但有...

小智 7

要获取对象的文本表示,您可以将消息发送printString到对象.例如,Object new printString将返回字符串'an Object'.

要创建测试用例,您应该创建一个子类TestCase:

TestCase subclass: #MyClassTestCase
    instanceVariableNames: ''
    classVariableNames: ''
    package: 'MyTest-Package'
Run Code Online (Sandbox Code Playgroud)

然后测试是一种开始的方法test.例如,以下测试验证字符串表示Object new:

testClassRepresentation
   self assert: Object new printString equals: 'an Object'
Run Code Online (Sandbox Code Playgroud)