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

Smalltalk 在测试中检查类的文本表示?,smalltalk,pharo,squeak,Smalltalk,Pharo,Squeak,假设我在Pharo Smalltalk中创建了一个类MyClass 如果我在工作区中写: 我的班级是新的 然后选择打印(Ctrl-p),我得到: 我的班级 稍微修改一下MyClass的printOn:方法, 我可以得到更多,例如: 值为5的MyClass +++ 所以我的问题来了。。。如何进行测试(TestCase类的实例) 这检查了MyObject的文本表示形式--我会得到什么 如果我做了“MyObject new”并将其打印出来-它应该是什么 如何获得文本表示,以便根据 当我在测试中执行se

假设我在Pharo Smalltalk中创建了一个类MyClass

如果我在工作区中写:

我的班级是新的

然后选择打印(Ctrl-p),我得到:

我的班级

稍微修改一下MyClass的printOn:方法, 我可以得到更多,例如:

值为5的MyClass

+++

所以我的问题来了。。。如何进行测试(TestCase类的实例) 这检查了MyObject的文本表示形式--我会得到什么 如果我做了“MyObject new”并将其打印出来-它应该是什么

如何获得文本表示,以便根据 当我在测试中执行selfassert:equal:(或类似操作)时,字符串常量应该是什么

例如,在使用我的cutomizedprintOn:方法之后,它将 看起来像

值为5的MyClass


对于这样一个新手问题,很抱歉,但是有…

要获取对象的文本表示,您可以向该对象发送消息
printString
。例如,
Object new printString
将返回字符串
“一个对象”

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

TestCase subclass: #MyClassTestCase
    instanceVariableNames: ''
    classVariableNames: ''
    package: 'MyTest-Package'
然后,测试是一种以
test
开始的方法。例如,以下测试验证
对象new
的字符串表示形式:

testClassRepresentation
   self assert: Object new printString equals: 'an Object'