मैं फ़ारो के Phexample को आजमा रहा हूं और मुझे यह पसंद है, लेकिन मुझे लगता है कि सुनीत में आधा मेरा यूनिट परीक्षण और फेक्सप्लेम में दूसरा आधा हिस्सा है। क्या फेक्स नमूने को मेरे मौजूदा परीक्षणों के लिए एक आयात सुविधा पसंद है?सुनीट से फेक्स नमूने से
5
A
उत्तर
5
अपेक्षा मैचर्स के बारे में, PhexMatcher
के वर्ग पक्ष पर पुनर्लेखन नियमों की एक श्रृंखला है। यह स्क्रीनकास्ट बताता है कि आरबी के रीराइट इंजन का उपयोग कैसे करें: Code Critics in OB (OB Screencast 3)।
सबसे पहले उपयोग इन नियमों
RBParseTreeRewriter new
replace: 'self assert: [ `@expression ]' with: 'self assert: `@expression';
replace: 'self deny: `@expression' with: 'self assert: `@expression not';
yourself.
तो इन नियमों
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.
परीक्षण के बीच निर्भरता की शुरूआत के संबंध में उपयोग करते हैं, आप हाथ से अपने परीक्षण के पुनर्लेखन के लिए की है। JExample के लिए JUnit2JExample है लेकिन हां, स्मॉलटाक (अभी तक) के लिए ऑटोमैटिक माइग्रेशन नहीं है।
पुनश्च: यदि आप नवीनतम Pharo छवि का उपयोग कर रहे हैं आप scoped पुनर्लेखन काम कर नियमों पाने के लिए ओबी का उपयोग करें और ओबी-Refactory पैकेज वापस लौटने चाहिए। बस
SystemBrowser default: OBSystemBrowserAdaptor.
Gofer new
wiresong: 'ob';
addPackage: 'OB-Refactory';
revert
यह बहुत अच्छा है! मैं सभी पुस्तकालयों को फिर से लिखने के नियमों की कामना करता हूं :) –