TDD, 비기술적 소개
내가 곧 ICT 학위를 마칠 때, 나는 어쩔 수 없이 ICT 회사에서 실습을 해야 한다.저는 소프트웨어 개발에 관심이 많아서 현지의 소프트웨어 솔루션 회사에 지원하기로 결정했습니다. Ictual N.V. 몇 가지 회담을 통해 이 회사와 제품을 이해하고 실습 임무를 결정할 때가 되었습니다.나는 저항력이 가장 적은 경로를 선택하고 웹 응용 프로그램, 그들의 제품의 포털을 개발하기로 결정했다.인터넷 개발은 내가 1년 동안 해 온 일이기 때문에 나는 임무의 선택에 매우 만족한다.그리고 우리는 그들의 임무 요구를 토론하기 시작했다. 그들은 나에게 "이 문호는 팀의 업무 절차에 따라 개발해야 하고 테스트 구동에 따라 개발해야 한다."라고 말했다.
턱이 떨어졌어요...WTF가 그렇습니다. 저는 예전에 테스트를 들은 적이 있지만 테스트 구동 개발?여태껏이것은 실습에 있어서 하나의 도전이다.나는 새로운 것을 배웠다. 나는 이 고차원적인 해석이 너를 위해 TDD를 밝게 비추길 바란다. 만약 네가 나처럼 이 용어를 들어 본 적이 없다면.
테스트 구동 개발, 도대체 뭐야?
TDD는 실제 코드에 앞서 코드를 설명하는 테스트 용례를 작성할 수 있는 소프트웨어 개발 방법입니다.예를 들어, 만약 당신이 계산기를 만들고 싶다면, 계산기의 모든 기능 (구화, 감법, 곱셈, 나눗셈 등) 을 위한 테스트를 작성해야 한다.이 테스트를 작성한 후에 최소한의 코드를 작성해서 이 테스트를 통과할 것입니다.화합을 구하는 상황에서, 당신은 코드를 작성하여, 두 개의 숫자를 화합을 구할 것입니다.
테스트 드라이브 개발은 다음 다섯 가지 기본 단계로 나눌 수 있습니다.
통과하면 코드를 재구성하고 통과하지 않으면 코드를 변경합니다.
TDD에 대해 이야기할 때 우리는 두 가지 서로 다른 등급의 테스트에 대해 토론할 수 있다.
테스트
매번'테스트'라는 단어를 언급할 때마다 우리 한번 봅시다...수돗물🥤, 다음 부분은 우리가 정신을 똑바로 차려야 한다.
테스트는 소프트웨어 기능에 대한 단언이다. "그것은 두 숫자의 총체일 것이다."테스트에서, 당신은 기능과 실행할 때 그에 대한 기대를 설명했습니다.예를 들면 다음과 같습니다.
설명: "계산기는 두 개의 숫자를 더해야 한다."기대치: "2+2=4."방금 단원 테스트였어요.단원 테스트는 코드의 특정한 논리에 대한 설명과 기대를 설정할 수 있습니다.
일반적인 경험 법칙은 모든 단원 테스트에 대해 함수를 작성해야 한다는 것이다.이것은 코드를 간소화하고 디버깅과 나중에 다시 사용하기 쉽도록 합니다.
소프트웨어 개발에서 대량의 서로 다른 형식의 소프트웨어 테스트가 있지만 개발자로서 당신이 작성할 가장 중요한 테스트는 단원 테스트와 검수 테스트입니다.전방 개발자에게 있어서 끝에서 끝까지(e2e) 테스트는 매우 중요하다.e2e에서 응용 프로그램의 사용자 체험을 테스트할 것입니다.모든 구성 요소가 어떻게 서로 흐르고 작동하는지.
테스트 생성 시 중요한 모범 사례
// import dependencies for testing
import { ComponentFixture, TestBed } from "@angular/core/testing";
import { ComponentName } from "./component-name.component";
describe("CalculatorComponent", () => {
// create component instance
let component: ComponentName;
let fixture: ComponentFixture<ComponentName>;
beforeEach(async () => {
// import and declare dependencies for the component
await TestBed.configureTestingModule({
declarations: [ComponentName],
}).compileComponents();
});
beforeEach(() => {
// initialize component instance
fixture = TestBed.createComponent(ComponentName);
component = fixture.componentInstance;
fixture.detectChanges();
});
// test that should be run on the component code
it("should calculate a sum", () => {
const expectation = 4;
expect(component.sumNumber(2,2)).toEqual(expectation);
});
});
마찬가지로 위의 코드는 Angular 용으로 작성되었습니다.이정수는 다를 수 있지만, 현재 테스트 예시가 있습니다.sumNumber라는 함수가 2+2의 합을 되돌려준다고 단언할 수 있습니다.테스트 코드와 테스트할 코드 세그먼트에 필요한 도구를 먼저 가져옵니다.그리고 테스트 세트를 작성하기 시작한다.테스트 키트는 응용 프로그램(소프트웨어)의 특정 부분을 위한 모든 테스트입니다.🤷🏿♀️). 테스트 세트는 설명 함수에 있습니다.첫 번째 파라미터는 테스트 중인 응용 프로그램 부분을 설명하고, 두 번째 파라미터는 테스트를 포함하는 함수를 설명합니다.
그리고 한 명씩 적어.beforeach 함수에서 모든 테스트 용례를 작성하기 전에 발생해야 할 일들입니다.여기에 새로운 코드 실례를 만들고 테스트에 모든 의존 항목을 도입합니다.
다음은 재미있는 부분, 테스트.이런 테스트에는 거의 인류 언어 유형의 문법이 있다.모든 테스트는 it 기능의 형식으로 진행될 것이다.첫 번째 파라미터는 테스트의 설명입니다. 당신은 도대체 무엇을 테스트하고 있습니까?그것은 무엇을 해야 합니까?두 번째 매개 변수는 실행 코드를 포함하고 예상대로 실행되는 함수를 포함합니다.이 함수에서 논리의 정상적인 운행에 필요한 모든 내용을 설정해야 합니다.화합을 구하는 상황에서 우리가 화합을 구하는 두 개의 숫자로 함수를 호출한다.
Remember, the first time you are running your tests, they should fail. The test should be written before the code.
테스트가 끝난 후에 가장 좋은 응용 프로그램을 계속 개발하고 시작합니다.테스트 드라이브 개발을 사용하면 코드를 비판적으로 생각하도록 격려하고 더 깨끗한 코드를 작성할 수 있습니다.더 깨끗한 코드의 장점은 무궁무진하다.당신의 코드는 이해하기 쉽고, 다시 사용하기 쉬우며, 프로젝트에 새로운 개발자를 추가하기 쉽고, 디버깅하기 쉽습니다.
나는 네가 이 글에서 새로운 것을 배우고 다음 백만 달러의 응용 프로그램 아이디어에서 이런 개발 방법을 고려할 수 있기를 바란다.🤙🏿
테스트나 심지어 TDD를 자주 사용하는 사람들한테는당신이 선택한 프로그래밍 언어 중 테스트는 어떤 모양입니까?
Reference
이 문제에 관하여(TDD, 비기술적 소개), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/theowlsden/tdd-a-non-technical-intro-2o4k텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)