개발자노트

고정 헤더 영역

글 제목

메뉴 레이어

개발자노트

메뉴 리스트

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록
  • James (134)
    • IT (123)
      • 프로그래밍 (119)
      • 기록 혹은 팁 (4)
      • 트러블 슈팅 (0)
      • 메모 (0)
    • Contact (0)
    • 에세이 (11)

검색 레이어

개발자노트

검색 영역

컨텐츠 검색

IT/프로그래밍

  • [Cucumber] 시나리오 Java 코드로 변환하기 (계좌 예금 및 계좌이체하기)

    2015.12.06 by James Lee.

  • [Cucumber] Scenario Outline 기법을 활용하여 시나리오 중복 제거하기

    2015.12.06 by James Lee.

  • [Cucumber] '|'문자를 사용한 테이블형 데이터 전달

    2015.12.06 by James Lee.

  • [Cucumber] 최종 정리 (Mental Model)

    2015.12.06 by James Lee.

  • [Cucumber] 작동원리 분석

    2015.12.06 by James Lee.

  • Bit 연산 Leaning Test

    2015.12.06 by James Lee.

  • [TDD] 시침과 분침 사이 각도 계산

    2015.12.06 by James Lee.

  • [TDD] 이진 검색

    2015.12.06 by James Lee.

[Cucumber] 시나리오 Java 코드로 변환하기 (계좌 예금 및 계좌이체하기)

​ 이론으로만 공부하다보니 Cucumber와 BDD에 대해서 실제로 어떻게 테스트한다는 것인지 감이 잘 오지 않았다.어떻게 실패하는 테스트를 짜며 테스트 코드가 어느 것인지, 테스트 케이스는 어느 것인지도 헷갈렸다. 이사님의 도움으로 시나리오를 여러개 작성한 뒤, 시나리오를 조금씩 수정해 나가며 시나리오가 TDD에서의 테스트 케이스이고, Given, When, Then을 구현하는 클래스가 테스트 코드임을 알게 되었다. 그 이후는 TDD와 똑같았다. 단지 시나리오를 테스트 형태로 바꿔서 테스트한다는것, 이것이 비즈니스 요구사항에 집중하는 것이라는것을 더 잘 알게 되었다. 아래는 실습 내용이다. 파일의 위치와 내용은 아래와 같다. Feature파일 (테스트 케이스) deposit.feature -> 예금 관..

IT/프로그래밍 2015. 12. 6. 19:58

[Cucumber] Scenario Outline 기법을 활용하여 시나리오 중복 제거하기

시나리오 아웃라인이란 무엇일까? 중복되는 시나리오가 발생할때, 시나리오를 수정하려면 중복된 시나리오를 일일히 수정해줘야 하는 번거로움이 있다(코드나 이거나 비슷하다..) 그래서 시나리오가 중복되고, 데이터값만 바뀔때, 이 바뀌는 데이터값을 테이블 형태로 나타내고 이를 하나의 시나리오 형태(윤곽에 변수로 표현하는 것이다. 그래서 시나리오 아웃라인(OutLine : 형태, 윤곽)이라는 이름이 붙은 것 같다. 이해를 돕기위해 예시를 보자. 아래 예시에는 4개의 시나리오가 있다. Feature: Depositing money in to a User account Scenario: 사용자 계좌에 예금하는것은 현재 사용자 잔금에 돈을 더해야됨 Given a User has 0 in their account When..

IT/프로그래밍 2015. 12. 6. 19:57

[Cucumber] '|'문자를 사용한 테이블형 데이터 전달

백문이 불여일견이라고 역시 말보다는 코드로 보는것이 이해가 빠르다. 변환할 Feature파일은 아래와 같은 내용을 가지고 있다.Feature: Top N개를 (카테고리별로) 조회 Scenario: 방문자들이 Given 조건과 같이 상품을 조회 했을때, 카테고리별로 상품을 보여주는 시나리오 Given 방문자들의 페이지(상품) 및 카테고리 조회 목록 |Visitor|eType |Category|ProductID| |v1 |pagevw | | | |v1 |prdtvw |cA |p1 | |v1 |basket |cA |p1 | |v1 |prdtvw |cA |p2 | |v1 |basket |cA |p2 | |v1 |buy |cA |p1,p2 | |v2 |prdtvw |cA |p2 | |v2 |buy |cA |p2 ..

IT/프로그래밍 2015. 12. 6. 19:56

[Cucumber] 최종 정리 (Mental Model)

Mental Model이란? ​사건이나 개념을 묘사하는 모델​feature파일은 아래의 내용을 포함한다.​featurescenariogivenwhenthen이는 BDD의 개념이다. Cucumber은 어떤 순서로 동작하는가.​① Cucumber는 처음에 CucumberOptions에 지정된 범위 내에서 feature파일을 탐색한다.② gherkin 문법을 이용하여 시나리오를 Given, When, Then단위로 분석한다.③ Step Resource을 상속한 클래스가 @Given, @When, @Then을 구현했는지 확인한다. 구현하지 않았다면 적절한 메소드 템플릿을 추천해준다. (이것은 매우 유용한 기능이지만, Cucumber의 메인 기능은 아니다)​​Cucumber는 @Given, @When, @Then..

IT/프로그래밍 2015. 12. 6. 19:54

[Cucumber] 작동원리 분석

테스트 코드에 RunWith(Cucumber.class)를 써놓으면, Cucumber가 이 코드를 실행한다는 의미이다.@RunWith(Cucumber.class) //여기 @CucumberOptions(plugin = { "pretty" }, features = { "src/test" }) public class RunTest { }​어떤 코드를 실행하는가?@CucumberOptions에 써있는 위치의 코드 (여기에서는 deposit.feature, RunTest.java가 될 것 같다)Cucumber는 gherkin문법으로 feature의 내용을 다 읽어와서 구문분석을 한다.​Given, When, Then을 식별하여 메소드로 만든다​Feature: Depositing money in to a User..

IT/프로그래밍 2015. 12. 6. 19:53

Bit 연산 Leaning Test

Bit연산에 대한 학습 테스트 작성Bit연산의 종류와 그 의미는 아래의 표와 같다. 부호의미|OR&AND^XOR~NOTRightShift>>>RightShiftFillZero & 연산& (AND)연산은 비교대상이 전부 1이면 1, 아니면 0을 반환한다. 비교 대상은 2진수와 비교하기 무난한 16진수를 이용하여 표현하였다.0x110 & 0x100x110 & 0x010 (0x10 == 0x010)0x1100x010결과0x010 0x1010x010 (모든 자릿수가 서로 다르다)0x000 (따라서 결과값은 왼쪽과 같다) 0x0100x111 (2번째 자릿수가 서로 같다)0x010 (결과값)@Test public void bitWiseAnd() { assertEquals(0x010, 0x110 & 0x10); as..

IT/프로그래밍 2015. 12. 6. 19:51

[TDD] 시침과 분침 사이 각도 계산

요구사항 정리input으로 시간과 분이 정수로 들어온다.output으로 시침과 분침의 각도를 실수 소수점 1번째 자리까지 계산하여 반환한다.시침과 분침의 각도는 같거나 더 작은것을 반환하도록 한다. (9시 00분을 예로 들면 90도 혹은 270도의 각도가 있다. 이때 90을 반환한다)요구사항 테이블시침분침각도909095117.5(118)930105설계를 안하고 짜도 괜찮은가?테스트 케이스 만들기각도를 계산한다는 의미인 CalAngleTest 테스트 코드를 생성프로덕션 코드 만들기Caller Create 방식을 사용하여 CalAngle 클래스를 만들었다.마찬가지 방식으로 CalAngle클래스에 calAngle메소드를 만들었다.실패하는 테스트 코드 만들기9시 0분을 검사하는 테스트 케이스를 만들었다. 그런데..

IT/프로그래밍 2015. 12. 6. 19:51

[TDD] 이진 검색

TDD를 사용한 이진 검색 요구사항.1~10000까지의 정수를 입력받고 이진 검색을 통하여 걸린 횟수를 출력 ex) 1~100을 찾을때47 입력시 검색 비교값인 7을 반환63 입력시 검색 비교값인 6을 반환 독립된 기능 정의 (설계)저장소의 생성과 초기화 (배열의 크기를 정수값으로 입력하면 그 만큼의 배열이 생성됨, 배열은 순차적으로 1~ 배열의 크기 만큼 채워져 있음)검색 (검색 대상 값과, 배열을 입력하면 이진 탐색 후 걸린 횟수를 반환, 값이 없을시 0을 반환)결과 (결과 값을 받아서 검색 성공여부를 판단)첫번째 TDD Cycle저장소의 생성과 초기화실패하는 테스트 코드 작성 1~10의 값이 저장되어 있는 testAry배열과 1~10의 값이 채워진 10개의 크기의 배열을 생성하는 용도의 bs.ini..

IT/프로그래밍 2015. 12. 6. 19:50

추가 정보

인기글

최신글

페이징

이전
1 ··· 10 11 12 13 14 15
다음
TISTORY
개발자노트 © Magazine Lab
페이스북 트위터 인스타그램 유투브 메일

티스토리툴바