Skip to content

Latest commit

 

History

History
56 lines (33 loc) · 3.79 KB

File metadata and controls

56 lines (33 loc) · 3.79 KB

18.11.04(sun) study

Contents

  • TDD
    • mock이란?
    • [Differnet types of automated tests](#different-types-of-automated-tests, and-each-type-has-its-own-purpose)

TDD

Test-driven development: 매우 짧은 개발 사이클을 반복하는 소프트웨어 개발 프로세스 중 하나이다.

  1. 개발이 진행되면서 복잡한 코드가 점점 늘어나게 되면 유지보수에 많은 시간을 할애해야한다.
  2. 다른 사람들이 나의 코드를 보고자 할때, 테스트코드를 살피는 것도 도움이 된다.
  3. 자신의 코드에 대한 믿음을 올려준다.

△참고: My DRAMA: 제대로 알기 -를 다녀와서 .. TDD(테스트 주도 개발)란

mock

mock: initialize -> set expectations -> exercise -> verify

A mock is something that as part of your test you have to setup with your expectations. A mock is not setup in a predetermined way so you have code that does it in your test. Mocks in a way are determined at runtime since the code that sets the expectations has to run before they do anything.

사용자 인터페이스, 데이터베이스에서 작동하는 프로그램 및 특정 네트워크 구성에 의존하는 프로그램 등, 외부랑 연결이 되어 있는 프로그램은 전체 기능 테스트가 필요하므로, 외부 세계를 나타 내기 위한 가짜(mock)을 사용해야 한다. mock, stub은 외부와의 연결을 흉내낸다. 외부에서 "어떠한" 응답이 온다고 가정하고 가짜 오브젝트를 만든다. (가정하는 것을 mock이라는 것으로 한다.) △What's the difference between a mock & stub?](https://stackoverflow.com/questions/3459287/whats-the-difference-between-a-mock-stub)

Different types of automated tests, and each type has its own purpose

  • Unit tests(단위 테스트): 단일 객체 또는 함수 단위의 코드에 대한 테스트로, 각각의 테스트는 독립적으로 수행된다. 가장 작은 기능의 테스트들을 수행한다.
  • Integration tests(통합 테스트): 테스트 환경에서 데이터베이스에 대한 접근 코드를 테스트하는 것과 같이 여러 기능을 함께 테스트한다. 단일 프로그램 뿐만 아니라 다른 프로그램과의 연결, 즉 인터페이스 관점에서 테스트라고 할 수 있다.
  • E2E: 전체적인 서비스에 대한 테스트한다. 사용자 관점에서 이루어지는 테스트라고 할 수 있다.
  • Acceptance tests(인수 테스트): 전체 Application에 대해 자동화 테스트를 수행하는 것으로 예를 들면 selenimu같은 툴로 웹브라우저를 자동으로 실행하여 전체 시스템에 대해 자동화 테스트를 수행하는 것을 의미한다.
    • Acceptance Criteria (인수조건)
      • 사용자는 이메일 주소, 비밀번호로 회원가입할 수 있다.
      • 사용자는 특정 상품을 즐겨찾기로 등록할 수 있다.
      • 사용자는 로그아웃할 수 있다.

What’s the difference between Unit Testing, TDD and BDD?Jason Ryu: 단위 테스트, TDD, BDD의 차이점What are Unit Testing, Integration Testing and Functional Testing?Unit, Integration and End-To-End Tests - Finding the Right Balance