터미널에서 시작하는 "테스트 구동 개발"사경을위한 환경 구축

6019 단어 JUnit자바
Classi Advent Calendar 2017 13일째의 기사입니다.
프런트 엔드 엔지니어 @ 카사하루 입니다. 12일 만에 2회째의 투고입니다.

최근 사내에서 「테스트 구동 개발」의 독서회를 시작했습니다. (아직 한 번뿐이지만…)
사전에 이 책은 사경향이라고 들었으므로, 사경하는 전제로 시작했습니다.

그 당시 하나의 큰 문제가있었습니다.
그래, 무엇을 숨기자, 나의 Mac 위에 Java가 움직이는 환경이 없습니다!
하지만 사경을 위해 IDE를 넣고 싶지 않다는 갈등 ...

그래서 오늘의 테마는 터미널에서 시작하는 "테스트 구동 개발"사경을위한 환경 구축입니다!

Java 넣기


  • Homebrew 에 넣습니다
  • Homebrew는 설치된 가정
  • ref. h tps : // b w. sh/그리고 x_그럼. HTML


  • $ brew tap caskroom/cask
    $ brew cask install java
    $ java -version
    java version "9.0.1"
    Java(TM) SE Runtime Environment (build 9.0.1+11)
    Java HotSpot(TM) 64-Bit Server VM (build 9.0.1+11, mixed mode)
    
  • 특히 신경 쓰지 않고 Java 9가 들어갔습니다

  • JUnit 넣기


  • 아래에서 jar 파일을 다운로드합니다.

  • h tp // Repo 1. 글쎄. 오 rg / まごぇ 2 / rg / 쥬니 t / 쥬피 테 r / 쥬니 t 쥬 피 테 r 아 피 / 5.0.2 /
  • 솔직히 어디에서 찍어도 좋을지 헤매었습니다…
  • 첫번째 넘어지는 지점이었습니다


  • GitHub 보면 그렇게 느껴지고 도착했습니다.

  • junit-jupiter-api-5.0.2.jar 다운로드
  • 이것은 첫 번째 테스트 코드가 org.junit.jupiter.api.*를 가져 왔기 때문입니다.


  • 원하는 곳에 배치
  • 예) $HOME/sukina/basyo/junit-jupiter-api-5.0.2.jar

  • CLASSPATH를 설정합니다.

    bash_profile
    export CLASSPATH=$HOME/sukina/basyo/junit-jupiter-api-5.0.2.jar
    
  • 나머지는 터미널을 다시 시작하면 괜찮습니다.

    1장의 코드 실행하기


  • 테스트 코드와 구현 코드는 각각 아래와 같습니다

  • MoneyTest.java
    package money;
    
    import org.junit.jupiter.api.Test;
    import static org.junit.jupiter.api.Assertions.*;
    
    public class MoneyTest {
      @Test
      public void testMultiplication() {
        Dollar five = new Dollar(5);
        five.times(2);
        assertEquals(10, five.amount);
      }
    }
    

    Dollar.java
    package money;
    
    class Dollar {
      int amount;
    
      Dollar(int amount) {
      }
    
      void times(int multiplier) {
      }
    }
    
  • 실행
  • 경고는 나오지 만 (두 번째 넘어짐) 동작이 확인되었습니다

  • $ javac Dollar.java MoneyTest.java
    警告:不明な列挙型定数ですStatus.STABLE
      理由: org.apiguardian.api.API$Statusのクラス・ファイルが見つかりません
    警告:不明な列挙型定数ですStatus.STABLE
    警告2個
    
  • 단지 경고가 나온 채로는 신경이 쓰이므로 지우러 갑니다
  • 「org.apiguardian.api.API$Status 의 클래스 파일이 없다」라고 말해지고 있으므로 아래의 파일을 준비합니다
  • org/apiguardian/api/API.java


  • $ javac Dollar.java MoneyTest.java
    (消えたっ!)
    
  • (책의 흐름과 역주행하지만) Dollar.java의 amount 필드의 구현을 지우면 제대로 기대했을 때에 에러가 나온다
  • $ javac Dollar.java MoneyTest.java
    MoneyTest.java:11: エラー: シンボルを見つけられません
        assertEquals(10, five.amount);
                             ^
      シンボル:   変数 amount
      場所: タイプDollarの変数 five
    エラー1個
    

    요약



    라고 말해서 IDE를 준비하지 않고 사경할 준비가 되었습니다.
    끊임없이 독서회를 해 나가려고 생각합니다!

    내일은 @spin13씨입니다! 거지 기대!

    좋은 웹페이지 즐겨찾기