Ich probiere Pharo's Phexample aus und ich mag es, aber es fühlt sich ungeschickt an, die Hälfte meiner Komponententests in SUnit und die andere Hälfte in Phexample zu haben. Hat Phexample eine Importfunktion für meine bestehenden Tests?Migration von SUnit nach Phexample
5
A
Antwort
5
In Bezug auf die Erwartungsvergleicher gibt es eine Reihe von Umschreibungsregeln auf der Klassenseite von PhexMatcher
. In diesem Screencast wird erläutert, wie Sie die Rewrite-Engine von RB verwenden: Code Critics in OB (OB Screencast 3).
Erster Einsatz diese Regeln
RBParseTreeRewriter new
replace: 'self assert: [ `@expression ]' with: 'self assert: `@expression';
replace: 'self deny: `@expression' with: 'self assert: `@expression not';
yourself.
Dann diese Regeln verwenden
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.
die Einführung von Abhängigkeiten zwischen Test anbetrifft, müssen Sie Ihre Tests, die von Hand neu zu schreiben. Für JBeispiel gibt es JUnit2JExample aber leider gibt es (noch) keine automatische Migration für Smalltalk.
PS: wenn Sie die neueste Pharo Bild verwenden Sie arbeiten OB und kehren die OB-Refactory Paket zu erhalten scoped Rewrite-Regeln verwenden. Einfach ausführen
SystemBrowser default: OBSystemBrowserAdaptor.
Gofer new
wiresong: 'ob';
addPackage: 'OB-Refactory';
revert
Verwandte Themen
- 1. Wie markiert man erwartete Fehler in SUnit?
- 2. Migration von Stata nach Python
- 3. Migration von Couchdb nach Elasticsearch
- 4. Migration von Cloudera nach Hortonworks
- 5. Migration von NetBeans nach Eclipse
- 6. Migration von Subversion nach Git
- 7. Migration von Java nach C#
- 8. Migration von couchDB nach RDBMS
- 9. Migration nach Django 1.4
- 10. Migration nach C++ 11
- 11. Migration Rollback nach Dateiname
- 12. Migration von VisualAge für Java nach Eclipse
- 13. Migration von Firefox WebDriver nach Marionette
- 14. Migration von global.asax nach ASP.NET 5
- 15. Überprüfen von Git-Repos nach der Migration
- 16. Code-Migration von JDK 1.5 nach 1.6
- 17. Migration von Git-Server nach Github
- 18. Migration von Solr 4.10.2 nach Solr 6.0
- 19. SAP Oracle Migration nach PostgreSQL
- 20. Eclipselink Ausnahme nach Migration von GF 3.1.2 nach Payara 4.1.1
- 21. Jenkins-Berechtigungen nach der Migration
- 22. Migration vom Basar nach Mercurial?
- 23. Migration stürzt nach recover() -Methode
- 24. Laravel-Seed nach der Migration
- 25. Migration von Wildfly von AS 7 nach WF10
- 26. Migration von standalone.xml von Wildfly 8.1 nach JBOSS EAP 6
- 27. Globale Migration nach Python 3.x verfolgen
- 28. VC++ nach C# Migration Richtlinien/Ansätze/Probleme
- 29. Akzent Problem nach der Migration Wordpress
- 30. Reactive 6.5.0 ReactiveCommand nach der Migration
Das ist so cool! Ich wünsche, dass alle Bibliotheken Rewrite-Regeln zur Verfügung stellen :) –