Sto provando lo Phexample di Pharo e mi piace, ma mi sembra maldestro avere metà dei miei test unitari in SUnit e l'altra metà in Phexample. Phexample ha una funzione di importazione per i miei test esistenti?Migrazione da SUnit a Phexample
5
A
risposta
5
Per quanto riguarda gli abbinamenti di attesa, esiste una serie di regole di riscrittura sul lato classe di PhexMatcher
. Questo screencast spiega come utilizzare il motore di riscrittura di RB: Code Critics in OB (OB Screencast 3).
prima volta l'uso di queste regole
RBParseTreeRewriter new
replace: 'self assert: [ `@expression ]' with: 'self assert: `@expression';
replace: 'self deny: `@expression' with: 'self assert: `@expression not';
yourself.
Poi utilizzare queste regole
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.
Per quanto riguarda l'introduzione delle dipendenze tra i test, è necessario riscrivere i test a mano. Per JExample c'è JUnit2JExample ma purtroppo non c'è ancora una migrazione automatica per Smalltalk (ancora).
PS: se si utilizza l'immagine Pharo ultima è necessario utilizzare l'OB e ripristinare il pacchetto di OB-Refactory per ottenere regole di riscrittura con ambito di lavoro. Basta eseguire
SystemBrowser default: OBSystemBrowserAdaptor.
Gofer new
wiresong: 'ob';
addPackage: 'OB-Refactory';
revert
Problemi correlati
- 1. Migrazione da clearcase a mercurial
- 2. Migrazione da Stata a Python
- 3. Migrazione da TFS a Redmine
- 4. Migrazione da DataSet a EntityFramework
- 5. Migrazione da Authlogic a Devise
- 6. Migrazione da dcm4che2 a dcm4che3
- 7. Migrazione da MurmurHash a MurmurHash3
- 8. Migrazione da Java a C#
- 9. Migrazione da git a Perforce
- 10. Migrazione da Jam a CMake
- 11. Migrazione da TimeZone a DateTimeZone
- 12. migrazione a C# da Java
- 13. Migrazione da Azure a AWS
- 14. Migrazione da CoffeeScript a es6
- 15. Passaggio da migrazione automatica EF a migrazione prima del codice
- 16. Migrazione di "handle" da VB.NET a C#
- 17. Migrazione da Q a BlueBird (o Voto)
- 18. Guida alla migrazione da Axis2 a CxF
- 19. Migrazione da YUI 2 a YUI 3
- 20. Migrazione da Hit/visitatori a TopDocs/TopDocCollector
- 21. Migrazione da ngRoute a ui-router
- 22. Migrazione da Maven 2/3 a Gradle
- 23. Migrazione da MySQL a MariaDB e viceversa
- 24. Migrazione da Javadoc a Python Documentazione
- 25. migrazione da password legacy a rotaie ideato
- 26. migrazione da Java concorrenza a Scala concorrenza
- 27. Migrazione da Subversion 1.4 a 1.6
- 28. Migrazione da Jetty 6 a Jetty 8
- 29. Migrazione da gcm a fcm su android
- 30. Migrazione da TFS 2010 a TFS 2012
Che bello! Vorrei che tutte le librerie fornissero le regole di riscrittura :) –