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

时间:2017-10-28 18:59:00

标签: smalltalk pharo squeak

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

如果我在工作区中写道:

  

MyClass new。

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

  

MyClass

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

  

值为的MyClass:5

+++

所以我的问题是......我怎样才能进行测试(TestCase-class的实例) 检查 MyObject 的文本表示 - 我会得到什么 如果我做了#34; MyObject new"和Print-It - 应该是什么?

如何获取文字表示,以便我可以查看 当我在我的测试中执行 self 断言:相等:(或类似的东西)时,应该的字符串常量?

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

  

值为的MyClass:5

很抱歉这样一个新手问题,但是还有......

1 个答案:

答案 0 :(得分:7)

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

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

TestCase subclass: #MyClassTestCase
    instanceVariableNames: ''
    classVariableNames: ''
    package: 'MyTest-Package'

然后,测试是一种以test开头的方法。例如,以下测试验证Object new

的字符串表示形式
testClassRepresentation
   self assert: Object new printString equals: 'an Object'