2009-11-20 2 views
5

私はPharoのPhexampleを試していますが、好きですが、SUnitでユニットテストの半分、Phexampleで半分のユニットテストを行うのが不思議です。 Phexampleには既存のテストのインポート機能がありますか?SUnitからPhexampleへの移行

答えて

5

期待値マッチャに関しては、PhexMatcherのクラス側に一連の書き換えルールがあります。このスクリーンキャストでは、RBのリライトエンジンの使用方法について説明しています。Code Critics in OB (OB Screencast 3)

ファーストはその後、テスト間の依存関係の導入に関しては、これらの規則

RBParseTreeRewriter new 
    replace: 'self assert: `@value = `@expected' with: '`@value should = `@expected'; 
    replace: 'self assert: `@value ~= `@expected' with: '`@value should not = `@expected'; 
    replace: 'self assert: `@value > `@expected' with: '`@value should > `@expected'; 
    replace: 'self assert: `@value < `@expected' with: '`@value should < `@expected'; 
    replace: 'self assert: `@value >= `@expected' with: '`@value should >= `@expected'; 
    replace: 'self assert: `@value <= `@expected' with: '`@value should <= `@expected'; 
    replace: 'self assert: (`@value isKindOf: `@type)' with: '`@value should beKindOf: `@type'; 
    replace: 'self assert: `@expression isNil' with: '`@expression should be isNil'; 
    replace: 'self assert: `@expression notNil' with: '`@expression should be notNil'; 
    replace: 'self assert: `@expression `test not' with: '`@expression should not be `test' 
     when: [:node | node arguments first receiver selector matchesRegex: '(is|has|not).+|atEnd' ]; 
    replace: 'self assert: `@expression `test' with: '`@expression should be `test' 
     when: [:node | node arguments first selector matchesRegex: '(is|has|not).+|atEnd' ]; 
    replace: 'self assert: (`@collection includes: `@element) not' with: '`@collection should not be includes: `@element'; 
    replace: 'self assert: (`@collection includes: `@element)' with: '`@collection should be includes: `@element'; 
    yourself. 

を使用し、これらの規則

RBParseTreeRewriter new 
    replace: 'self assert: [ `@expression ]' with: 'self assert: `@expression'; 
    replace: 'self deny: `@expression' with: 'self assert: `@expression not'; 
    yourself. 

を使用し、あなたの手で、あなたのテストを書き換える必要があります。 JExampleの場合はJUnit2JExampleですが、スモールトークの自動移行はありません(まだ)。


PS:あなたは、最新のファロの画像を使用している場合は、作業スコープの書き換えルールを取得するにはOB-RefactoryパッケージをOBを使用して元に戻す必要があります。ちょうど実行する

SystemBrowser default: OBSystemBrowserAdaptor. 
Gofer new 
    wiresong: 'ob'; 
    addPackage: 'OB-Refactory'; 
    revert 
+0

これはとてもクールです!私はすべてのライブラリが書き換えルールを提供したい:) –

関連する問題