2013-10-17 16 views
5

Właśnie kupiłem kopię Intellij i potrzebuję wygenerować stub testowy jednostki i umieścić junit na ścieżce klasy i ustawić test do wykonania z junit runner. W Eclipse jest to banalne.Jak wykonać Eclipse stylu TDD z Intellijem

Każda instrukcja czytam wygląda następująco ...

  1. Utwórz klasę przetestowania
  2. metody Add
  3. Utwórz korzeń źródłowy testy
  4. Utwórz klasę testową
  5. Test Run

Ale nie chcę tworzyć żadnej klasy ani żadnej z Met hod, dopóki nie będę mieć testu, który się nie skompiluje.

Chcę najpierw rozmieścić kody klasy i metody w teście. Kiedy jestem zadowolony z interfejsu API, który wyraziłem w teście, chcę automatycznie generować deklaracje klasy i metody, a następnie rozpoczynać się od asercji.

Jak to zrobić w Intellij?

+1

To naprawdę nie mają do czynienia z IntelliJ; to ogólnie problem TDD. Typowe podejście polega na zapisaniu niektórych skrótów z ciałami typu 'throw new UnsupportedOperationException(); // TODO', następnie zapisz testy przeciwko nim, a następnie pracuj do momentu przejścia tych testów. Ale już wspominałeś o karczowaniu; więc, z czym konkretnie masz problemy? – yshavit

+0

Myślę, że jest to problem z Intellij nie obsługuje przepływu pracy, który jest uważany za najlepszą praktykę przez wielu programistów. – jeremyjjbrown

Odpowiedz

2

Można utworzyć szablon pliku, aby dodać test jednostki i zachować przepływ pracy TTD podobny do Eclipses.

  1. Rt kliknij katalog główny projektu w okienku projektu. Wybierz Nowy> Edytuj szablony plików ...
  2. Skopiuj szablon klasy Java i nadpisaj nazwę JUnit i kod ...

    #if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end 
    import org.junit.Test; 
    #parse("File Header.java") 
    public class ${NAME} { 
        @Test 
        public void test() { 
        } 
    } 
    

Teraz po kliknięciu prawym przyciskiem myszy pakiet można dodać nowe JUnit niedopałek wybierając Nowy> Java Class> Kind = JUnit

+0

Nie wiem, dlaczego sekcja kodu formatuje sposób, w jaki jest przykro. – jeremyjjbrown

2

Utwórz folder testowy i dodać nową klasę testową, na przykład WhateverTest.java

Dodaj nową metodę, która ma @Test adnotacji.

@Test 
public static void whatever() { 
} 

Po zaimportowaniu wszystkich wymaganych zależności JUnit (oraz te, które chcesz), można po prostu powiedzieć IntelliJ do uruchamiania testów w klasie. Nie sądzę, żebyś musiał wykonać jakąś specjalną konfigurację poza tym.

1

IntelliJ IDEA nie obsługuje automatycznego generowania głównych klas z klas testowych. Automatycznie generuje klasy testowe i metody z klasy głównej. Możesz to zrobić jako @yshavit polecając w swoim komentarzu i stworzyć szkielet głównej klasy, a następnie automatycznie wygenerować klasę testową poprzez Ctrl + Shift + T. Lub podczas pisania testu, utrzymuj zsynchronizowany z nim interfejs. Następnie możesz automatycznie wygenerować implementację z poziomu interfejsu.

W przeciwnym razie, jak ja to widzę, masz trzy opcje:

  1. otworzyć feature request dla klas samochodowych generowania produkcyjnych z klas testowych
  2. Napisz własną wtyczkę do zrobienia tego
  3. Zapytaj autor istniejącej wtyczki, takiej jak skoncentrowana wtyczka TDD Enso, aby dodać tę funkcję.
+0

Naprawdę próbowałem zduplikować szablon pliku klasy Java i dodałem kod metody, aby był junitem. Jednak nie pojawia się w oknie dialogowym Nowy, a dokumenty Intellij nie oferują rozwiązania, które można znaleźć, aby je udostępnić. – jeremyjjbrown

+1

Zobacz mój [post tutaj] (http://devnet.jetbrains.com/message/5499184#5499184), aby uzyskać informacje na temat korzystania z nowego szablonu pliku. Jest to coś, co musi być trochę lepiej udokumentowane :) – Javaru

+0

Niestety, opcja "Z File Templates" nie jest dostępna dla mnie, gdy kliknę prawym przyciskiem myszy mój projekt/folder src/package i wybierz Nowy w Intellij 12.1.4. – jeremyjjbrown