2017-10-28 73 views
3

可以說,我已經創建了一個類MyClass的在菲羅Smalltalk中......在測試中檢查課程的文字表達?

如果我在工作區

MyClass的新。

,並選擇打印它(按Ctrl-P),我得到:

一個MyClass的

帶着幾分與MyClass的了printOn修修補補的:方法, 我可以得到更多,例如:

一個MyClass的值爲:5

+++

所以我的問題是...我怎樣才能使一個測試(TestCase的類的實例) ,檢查該文本 - 代表MyObject - 我會得到 如果我做了「MyObject new」和Print-It - 它應該是什麼?

我如何獲得的文字表述,所以我可以檢查它針對 字符串常量有什麼應該是,當我做了斷言:平等:在(或類似的東西)我測試?

例如,使用後,我的cutomized 了printOn:方法,它將 看起來像

一個MyClass的值爲:5

對不起,這樣的新手問題,但有去...

回答

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'