2016-09-29 4 views
1

Ich möchte CodeEclipse-Code Refactoring - Junits

String a = "Hi"; 
assertEquals(a, "Hi"); 

zu

String a = "Hi"; 
assertEquals("Hi", a); 

Ich habe exisiting Refactoring wie 2 Millionen Aussagen über mein Projekt geltend machen, die Refactoring werden müssen. Sind das irgendwelche Tastenkürzel, Vorlagen oder Batch-Prozesse in der Eclipse-IDE, die ich dafür leichter implementieren kann?

assertEquals (erwartet, tatsächlich);

+0

Ich würde vielleicht smth verwenden. wie die Funktion "Suchen und Ersetzen im Projekt" mit einer Regex. –

+0

@ArthurEirich: Können Sie ein Beispiel für den Regex-Ausdruck teilen? – SRCM

+1

Seitennotiz: wenn Sie für all diese Arbeit des Refactoring gehen, warum ändern Sie es nicht in die viel gesund * assertThat (a, ist ("Hi")) *? Hat den schönen Vorteil, dass du deine Argumente nicht austauschen musst ;-) – GhostCat

Antwort

2

Sie könnten versuchen, die folgenden:

  1. Kopieren org.junit.Assert.assertEquals Methoden in eine neue Klasse, sagen wir mal temp.TempAssert
  2. Suchen und Ersetzen import static org.junit.Assert.assertEquals; mit import static temp.TempAssert.assertEquals; in allen Dateien
  3. Zum TempAssert Klasse und tun Refactor -> Change Method Signature, um die Reihenfolge der Parameter zu ändern
  4. Ersetzen import static temp.TempAssert.assertEquals; bac k zu import static org.junit.Assert.assertEquals; in allen Dateien
+0

Schöne Idee, die ist. – GhostCat

1

ein wenig mit dem regex gespielt haben, kam ich mit der folgenden Lösung bis (dank this link):

assertEquals\((.*), (.*)\); 

fängt das erste und das zweite Argument in eine separate Gruppe 1 bzw. Gruppe 2 und sollte in das Eingabefeld find eingefügt werden.

Dieser Befehl tauscht die Gruppen aus, die in $ 1 für das erste und $ 2 für das zweite Argument gespeichert wurden.

WARNUNG

ich für die Entwicklung von IntelliJ IDEA verwenden, so kann es zu einem unerwarteten Verhalten in Eclipse kommen. Aber der Befehl sollte fast derselbe sein.