코드가 깔끔한 길----타산의 옥 재구성 가능: 신분증 번호 해석, 검증 도구(첫날)
원 코드는 나에게 좋은 출발점을 주었다. 그래, 이 코드들은 모두 옥이야. 나는 여기서 단지 다시 생각해 볼 뿐이야.
그럼에도 불구하고 재구성 과정은 여전히 번거롭고 문장이 길지도 모르며 매번 재구성할 때마다 모든 코드를 한 번씩 표시해야 한다.
알기는 쉬워도 실행하기는 어렵다. 재구성은 동태적인 과정이기 때문에 쉽게 나타나지 않는다. 인내심을 가지고 천천히 보아야 한다.
1 - C# 코드로 전환하여 첫 번째 테스트 추가
네, 이것은 반드시 필요한 것이 아닙니다. 제 탓이라고 할 수 있습니다. 자바를 할 줄 모릅니다.하지만 너도 일종의 재구성 장면이라고 볼 수 있지 않니?
변경된 코드는 더 이상 넣지 않습니다. 비교적 간단합니다. C#와 자바의 차이와 관련이 있기 때문에 Social ID를 남겨 두십시오.cs.하지만 내 테스트 코드는 매우 중요하다.아마도 많은 사람들이 나의 테스트 프레임워크(Machine.Specification)와 코드 스타일을 비난할 것이다.전자는 앞으로 MSpec과 BDD를 많이 소개해서 여러분들이 익숙해지도록 하겠습니다. 후자는 여러분들이 적응하길 바랄 뿐입니다.
==> 쓰기 테스트
첫 번째 테스트 코드: 정확한 입력으로 신분증을 만들 때 정확한 생일을 받을 수 있어야 한다.
namespace Skight.eLiteWeb.Domain.Specs
{
public class when_create_social_id_with_proper_input
{
private Because of = () => subject = new SocialID("43010319801120753");
private It should_get_birth_date_correctly =
() => subject.getBirthDate().ShouldEqual(new DateTime(1980, 11, 20));
private static SocialID subject;
}
}
4
==>첫 번째 테스트 실행, 실패:)
재미있는 것은 C#문법번역을 해결한 후에 제 첫 번째 테스트는 실패했습니다.==> 재구성
원래 같은 문법인 Substring처럼 보이지만 두 번째 매개 변수는 다른 의미를 가진다.더 이상 경전할 수 없는 장면이다. 테스트는 이 과정을 순조롭게 할 수 있다.
4
private String getBirthDayPart() {
return this.cardNumber.substring(6, 14);
}
으로 변경private String getBirthDayPart()
{
return this.cardNumber.Substring(6, 8);
}
==> 재테스트
==>첫 번째 교체 종료, 휴식.
자, 단계적인 성과, 하나의 테스트/행위는 하나의 이정표로 표시할 수 있습니다. 오늘은 여기까지입니다. 당신의 지지는 내일 계속하도록 하겠습니다.
오, 기다리지 마세요.마지막 걸음, 확실히 가장 중요한 걸음.우리 고객(이 상황에서 내 고객은 다른 개발자다. 그래, 고급 프로그래머의 고객은 다른 중급, 초급 프로그래머, 생각을 바꿔라)에게 주는 테스트/기능 보고서는 다음과 같다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
WebView2를 Visual Studio 2017 Express에서 사용할 수 있을 때까지Evergreen .Net Framework SDK 4.8 VisualStudio2017에서 NuGet을 사용하기 때문에 패키지 관리 방법을 packages.config 대신 PackageReference를 사용해야...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.