분류 전체보기100 테스트 쉽게 하기4 이번 글에서는 지금까지 살펴본 Minitest를 사용해서 '회문 검사 프로그램 만들기'와 '암호화 프로그램 만들기' 글에서 작성한 프로그램에 대한 테스트 코드를 작성해 보도록 하겠다. 아래 코드를 보면 Minitest를 사용하여 테스트 코드를 작성했는데, 두 개의 테스트 메서드에서 각각 reverse_xxx 메서드와 palindrome? 메서드를 검증하는 코드를 작성했다. test_palindrome 메서드를 보면 refute라는 처음 보는 어설션 메서드가 보이는데, 이것은 assert와 달리 어떤 객체 또는 식의 결괏값이 거짓으로 평가되는지 검증한다.require 'minitest/autorun'require '../palindrome'class Test 아래 그림을 보면 refute로 시작하는 어설션.. 2025. 1. 17. 테스트 쉽게 하기3 테스트 코드를 작성하다 보면 테스트를 수행하기 전과 후에 어떠한 작업이 필요한 경우가 있다. 예를 들어 내가 작성한 코드가 특정 폴더의 파일들을 다른 폴더로 이동시키는 기능이라고 해보자. 이 코드를 테스트하기 위해서는 테스트를 위한 폴더와 파일들을 미리 준비해 놓아야 한다. 그리고 테스트 후에는 옮겨진 파일들을 삭제하는 정리 작업이 필요하다. 메서드 호출의 전후나 프로그램 종료 등 특정 시점에 실행될 수 있도록 만들어 놓은 코드를 훅(Hook)이라고 하는데, Minitest에서도 테스트 메서드의 실행 전후에 필요한 작업을 실행시킬 수 있도록 setup과 teardown이라는 훅(Hook) 메서드를 정의해 놓았다. setup 메서드는 각 테스트 메서드를 실행하기 전마다 호출이 되고, teardown 메.. 2025. 1. 13. 테스트 쉽게 하기2 이번 글에서는 Minitest에서 제공하는 여러 가지 어설션 메서드들을 살펴보려고 한다. 아래 Minitest 모듈의 Assertions 모듈에서 정의한 어설션 메서드들이 보인다. 이 중 자주 사용될 만한 것들을 위주로 살펴보자.아래 그림을 보면 4개의 서로 다른 어설션 메서드를 사용하여 검증 코드를 작성했는데, 모든 테스트가 성공하도록 작성하였다. 어설션 메서드의 이름만 봐도 어떤 검증을 하는지 쉽게 알 수 있다. assert_empty는 어떤 객체(보통 문자열, 배열, 해시 등)가 값(문자 또는 요소나 항목)을 하나도 포함하고 있지 않은지 검증하고, assert_includes는 어떤 객체(첫 번째 인수)가 특정 값(두 번째 인수)을 포함하고 있는지 검증하고, assert_instance_of는 어.. 2025. 1. 6. 테스트 쉽게 하기1 프로그램을 개발할 때 내가 작성한 프로그램이 올바르게 잘 동작하는지 테스트하는 것은 매우 중요한 일이다. 테스트와 관련해서 다뤄야 할 여러 가지 주제들이 있을 수 있지만, 이번 글에서는 단위 테스트에 대해 살펴보려고 한다. 단위 테스트는 메서드(또는 함수) 등 가장 작은 단위의 기능에 대해 수행하는 테스트로서, 가장 기본적인 테스트이면서 다른 모든 테스트의 기반이 되는 중요한 테스트이기도 하다. 메서드 자체에 대한 테스트 없이 로그인이나 상품 등록 등과 같이 여러 메서드 간의 호출 흐름으로 이루어지는 기능들을 테스트하는 건 바람직하지 않다. 프로그래밍 언어마다 테스트 작성 및 실행을 지원하는 라이브러리나 툴이 존재하는데, 루비에서도 표준 라이브러리에 포함된 Minitest를 사용하면 별도의 도구 없이 테.. 2024. 12. 31. 이전 1 2 3 4 5 6 7 8 ··· 25 다음