테스트 구동 개발 시작
5735 단어 productivitydiscussrubybeginners
무엇
테스트 드라이브 개발(Test Driven Development, 약칭 TDD)은 코드를 작성하기 전에 테스트를 작성함으로써 소프트웨어를 만드는 방법이다.
TDD를 세 가지 규칙으로 설명합니다.
컴파일러가 실행되기 전에 머릿속에 떠오르는 코드를 기억하고 코드를 통합하는 것이 더 쉬울 것 같지만, 결국 급하게 작성한 코드를 디버깅하는 데 걸리는 시간은 테스트를 작성하는 시간을 초과할 것이다. 이로 인해 코드가 표준에 이르지 못하게 되고, 더 심각한 것은 미래를 위해 테스트를 작성하지 않았다는 것이다.
작은 프로젝트나 코딩 연습은 테스트가 필요하지 않을 수도 있지만 예견할 수 있는 미래에 프로그램과 프로젝트의 건강과 안정성을 유지하기 위해 테스트 구동 개발은 실행 가능한 길이다.
왜 중요해
어떤 사람들은 응시 쓰기를 매우 진지하게 대하기 때문에, 그들은 이러한 격언을 믿는다. "테스트를 거치지 않으면 실패할 것이다."
테스트 드라이브 개발은 디버깅에 큰 도움을 주었고 버그를 찾는 시간을 단축시켰다.
우선 테스트를 작성하는 장점 중 하나는 혼란 속에서 방향을 잃지 않는다는 것이다.만약 너의 마감일이 매우 촉박하다고 가정한다면, 시간을 절약하기 위해서, 너는 시험을 뛰어넘었다.너는 새로운 기능을 발표한 후에 다시 각고의 노력으로 돌아왔다. 같은 마감일에 개발에서 테스트를 줄여야만 했다.곧, 당신은 이미 완전한 코드 라이브러리를 발표했습니다. 그 안에 오류 코드가 포함되어 있고 테스트도 없습니다.
테스트 드라이브를 사용하여 테스트를 개발하고 먼저 작성하여
구현 방법
많은 프로그래밍 언어는 테스트에 사용되는 라이브러리와 프레임워크를 가지고 있다.JavaScript에는 Jest 및 Mocha가 있습니다.루비는 rspec 있습니다.파이썬에는 테스트 모듈과 파이스트(https://docs.pytest.org/en/latest/가 내장되어 있다.자바에는 JUnit (https://junit.org/junit5/ 이 있습니다. 프로그래밍 언어라면 테스트 프레임워크가 있을 수 있습니다.
어떤 종류의 프레임워크를 선택하든지 간에 예상한 결과를 가진 테스트를 작성할 것입니다.만약 예상한 결과나 단언한 결과가 진실이라면 테스트가 통과된다.가짜라면 테스트에 실패했다고 본다.
Ruby on Rails에 구축된 URL 단축 웹 응용 프로그램에서 URL 대상을 만드는 두 가지 테스트를 살펴보겠습니다.
require 'test_helper'
class UrlsControllerTest < ActionDispatch::IntegrationTest
test "should create a new url" do
url = Url.new
assert url.save
end
test "should only save a unique url" do
url = Url.new
url.text = "https://www.amazon.com/Ruby-Under-Microscope-Illustrated-Internals/dp/1593275277"
assert_not url.save, "Saved a duplicated URL"
end
end
여기에 우리는 두 가지 테스트가 있는데, 테스트는 '새로운 URL을 만들어야 한다', 테스트는 '기존의 URL을 검색해야 한다' 이다.첫 번째 테스트에서 새로운 url 대상을 만들고 url을 데이터베이스에 저장할 수 있다고 단언합니다.Ruby는 url 대상의save 방법의 성공 완성을 평가하고true를 되돌려줍니다. 만약 성공했다고 단언하면true를 되돌려줍니다.
두 번째 테스트는 유일한 URL만 저장할 수 있도록 합니다. 만약 이 URL이 데이터베이스에 존재한다면, 우리는 차라리 사용자를 기존의 URL 대상에 인용하기를 원합니다.그러나 우리는 실제 데이터베이스에 있는 데이터를 검사하지 않고 이른바 테스트 클러치에서 가상 데이터를 만든다.
테스트 클러치의 목적은 결과가 중복될 수 있도록 우리가 테스트를 실행하는 표준 환경을 확보하는 것이다.
여기 우리 URL에 대상이 하나 있습니다.우리는 코드를 테스트하는yml 파일에 사용할 수 있다.
ruby_book_page:
text: https://www.amazon.com/Ruby-Under-Microscope-Illustrated-Internals/dp/1593275277
short: f0r
이 객체는 URL에 있기 때문입니다.yml 파일, 저희 코드는 데이터베이스에 있는 기존 URL 대상으로 간주합니다.Amazon 링크를 text 속성에 할당하는 새 URL을 만듭니다. 저장에 실패하고false로 되돌아갈 때 assert not 테스트가 성공했습니다.인증이 없으면 URL이 저장되고 테스트가 실패합니다.그리고 우리는 코드를 URL 모델에 추가합니다. 이 모델은 모든 URL을 검증하고 유일한 URL만 받아들일 것입니다.
class Url < ApplicationRecord
validates :text, uniqueness: true
end
그리고 우리는 테스트를 다시 실행하고 통과한 것을 보고 테스트 드라이브 개발 과정을 완성했다. (어쨌든 그 코드에 대해서는)테스트 코드에는 여러 가지 방법과 방법이 있습니다. 이것이 당신이 정확한 방향으로 한 걸음 내딛는 데 도움을 줄 수 있기를 바랍니다.
Reference
이 문제에 관하여(테스트 구동 개발 시작), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/chasestevens/getting-started-with-test-driven-development-1o8f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)