Java java지도 시간 새로운 Java 운동: 테스트 주도 개발 3---사용자 등록 2

새로운 Java 운동: 테스트 주도 개발 3---사용자 등록 2

Dec 30, 2016 pm 01:13 PM

테스트 중심 개발(TDD)은 실제로 새로운 개념은 아니지만 이 방법론의 본질을 오해하는 경우가 많습니다. 제 경우에는 테스트 주도 개발이란 단위 테스트를 작성하여 코드를 완전히 테스트하는 것을 의미한다고 생각합니다. 실제로 이것은 테스트 중심 개발에 대한 가장 일반적인 오해 중 하나입니다. 테스트 중심 개발은 테스트뿐만 아니라 드라이브 개발도 강조합니다. 테스트케이스를 작성하는 목적은 테스트뿐만 아니라 디자인, 기능과 인터페이스의 디자인, 기능이나 인터페이스의 사용자 관점에서의 디자인인 반면, 다른 방법론에서의 디자인은 개발자 관점의 디자인, 따라서 테스트 중심 개발은 좋은 디자인을 생산하는 데 더 도움이 됩니다.

그러나 단순히 테스트를 통해 설계하고 코드 품질을 보장하기 위한 테스트를 실행하는 것만으로는 고품질 소프트웨어 제품을 생산하는 데 충분하지 않습니다. 테스트 주도 개발 역시 코드의 불합리한 부분을 리팩토링하는 리팩토링을 강조하는데, 이 리팩토링은 테스트 작성, 개발, 검증 과정마다 수행되어야 하기 때문에 이를 보장할 수 있는 테스트 케이스가 있다. 의도하지 않은 결과에 대해 걱정하지 않고 자신감 있고 대담하게 리팩터링하세요.

우리 프로젝트의 MainServlet에서 모든 비즈니스 로직을 구현했지만 모든 애플리케이션 로직이 이 클래스에 기록되면 해당 클래스는 거대해질 것이라는 점을 곧 깨닫게 될 것입니다. 유지 관리가 불가능하므로 사용자 등록 비즈니스 로직 구현을 사용자 모듈에 넣어야 합니다. 보시다시피, 우리는 시스템을 재구성하기 시작했습니다.

먼저 사용자 패키지를 생성하고 이 패키지 아래에 UserMngr 클래스를 생성합니다. 왜냐하면 기본 사용자 정보를 유지하는 것 외에도 사용자 모듈은 사용자 그룹, 사용자 레벨, 사용자 포인트도 유지해야 한다고 추정하기 때문입니다. 호출자가 이러한 세부 사항을 완전히 이해할 필요는 없으므로 여기서는 Facade 모드를 사용하고 사용자에 대한 모든 작업은 UserMngr을 통해 수행됩니다. 코드는 다음과 같습니다.

public class UserMngr {  
    public static long registerUser(Map<String, Object> userInfo) {  
        return 101;  
    }  
}
로그인 후 복사

이 클래스에서는 재구성된 아키텍처가 나중에 작동할 수 있는지 빠르게 확인하기 위해 값만 반환하고 아무 작업도 수행하지 않습니다. 또한 여기서는 매개변수 항목에 주의해야 합니다. 즉, 매개변수는 PHP에서와 유사한 배열로 전달됩니다. Java에서는 이러한 목적을 위해 값 개체 클래스를 설계하는 것이 더 일반적이지만 이로 인해 많은 값 개체 클래스가 정의되거나 공유의 필요성으로 인해 값 개체가 매우 큽니다. 여기서는 Map을 사용하여 매개 변수를 전달합니다. , 그러한 문제가 필요하지 않습니다.

아래 MainServlet에서 사용자 모듈을 호출하는 코드를 추가합니다.

private void registerUser(HttpServletRequest request, HttpServletResponse response) 
			throws IOException, ServletException {
		String userName = null;
		if (request.getParameter("userName") != null) {
			userName = request.getParameter("userName");
		}
		Map<String, Object> userInfo = new HashMap<String, Object>();
		userInfo.put("userName", userName);
		long userId = UserMngr.registerUser(userInfo);
		Map<String, Object> model = new HashMap<String, Object>();
		model.put("userId", "" + userId);
		request.setAttribute("model", model);
		/*this.getServletContext().getRequestDispatcher("/caporder/apply_capital.jsp")
			.forward(request, response);*/
	}
로그인 후 복사

아래 테스트 사례를 실행하면 이번에는 아키텍처 재구성이 성공했음을 증명합니다.

위 내용은 New Java Movement: Test Driven Development 3---사용자 등록 2의 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!


본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

DeepSeek 공식 웹 사이트 입구 및 최신 홍보 활동 DeepSeek 공식 웹 사이트 입구 및 최신 홍보 활동 Feb 19, 2025 pm 05:15 PM

DeepSeek의 공식 웹 사이트는 이제 사용자에게 쇼핑 경험을 제공하기 위해 여러 할인 활동을 시작하고 있습니다. 신규 사용자는 10 달러짜리 쿠폰을 받기 위해 가입하고 전체 잠재 고객에게 15% 제한된 시간 할인을 즐기십시오. 추천 친구들도 보상을받을 수 있으며 쇼핑 할 때 선물의 구속을 위해 포인트를 축적 할 수 있습니다. 이벤트 마감일은 다릅니다. 자세한 내용은 DeepSeek 공식 웹 사이트를 방문하십시오.

Java 8 Stream foreach에서 나누거나 돌아 오시겠습니까? Java 8 Stream foreach에서 나누거나 돌아 오시겠습니까? Feb 07, 2025 pm 12:09 PM

Java 8은 스트림 API를 소개하여 데이터 컬렉션을 처리하는 강력하고 표현적인 방법을 제공합니다. 그러나 스트림을 사용할 때 일반적인 질문은 다음과 같은 것입니다. 기존 루프는 조기 중단 또는 반환을 허용하지만 스트림의 Foreach 메소드는이 방법을 직접 지원하지 않습니다. 이 기사는 이유를 설명하고 스트림 처리 시스템에서 조기 종료를 구현하기위한 대체 방법을 탐색합니다. 추가 읽기 : Java Stream API 개선 스트림 foreach를 이해하십시오 Foreach 메소드는 스트림의 각 요소에서 하나의 작업을 수행하는 터미널 작동입니다. 디자인 의도입니다

참깨 오픈 도어 공식 웹 사이트 거래 플랫폼 참깨 오픈 도어 공식 웹 사이트 교환 등록 입구 참깨 오픈 도어 공식 웹 사이트 거래 플랫폼 참깨 오픈 도어 공식 웹 사이트 교환 등록 입구 Feb 28, 2025 am 10:57 AM

Gate.io Sesame Open은 피아트 통화 거래, 통화 거래, 레버리지 거래, 영구 계약, ETF 활용 토큰, 자산 관리, 초기 공모 및 기타 섹션을 포함하여 세계 최고의 블록 체인 디지털 자산 거래 플랫폼입니다. 사용자에게 보안, 안정성, 개방성 및 투명성을 제공합니다.

미래를 창조하세요: 완전 초보자를 위한 Java 프로그래밍 미래를 창조하세요: 완전 초보자를 위한 Java 프로그래밍 Oct 13, 2024 pm 01:32 PM

Java는 초보자와 숙련된 개발자 모두가 배울 수 있는 인기 있는 프로그래밍 언어입니다. 이 튜토리얼은 기본 개념부터 시작하여 고급 주제를 통해 진행됩니다. Java Development Kit를 설치한 후 간단한 "Hello, World!" 프로그램을 작성하여 프로그래밍을 연습할 수 있습니다. 코드를 이해한 후 명령 프롬프트를 사용하여 프로그램을 컴파일하고 실행하면 "Hello, World!"가 콘솔에 출력됩니다. Java를 배우면 프로그래밍 여정이 시작되고, 숙달이 깊어짐에 따라 더 복잡한 애플리케이션을 만들 수 있습니다.

캡슐의 양을 찾기위한 Java 프로그램 캡슐의 양을 찾기위한 Java 프로그램 Feb 07, 2025 am 11:37 AM

캡슐은 3 차원 기하학적 그림이며, 양쪽 끝에 실린더와 반구로 구성됩니다. 캡슐의 부피는 실린더의 부피와 양쪽 끝에 반구의 부피를 첨가하여 계산할 수 있습니다. 이 튜토리얼은 다른 방법을 사용하여 Java에서 주어진 캡슐의 부피를 계산하는 방법에 대해 논의합니다. 캡슐 볼륨 공식 캡슐 볼륨에 대한 공식은 다음과 같습니다. 캡슐 부피 = 원통형 볼륨 2 반구 볼륨 안에, R : 반구의 반경. H : 실린더의 높이 (반구 제외). 예 1 입력하다 반경 = 5 단위 높이 = 10 단위 산출 볼륨 = 1570.8 입방 단위 설명하다 공식을 사용하여 볼륨 계산 : 부피 = π × r2 × h (4

Spring Tool Suite에서 첫 번째 Spring Boot 응용 프로그램을 실행하는 방법은 무엇입니까? Spring Tool Suite에서 첫 번째 Spring Boot 응용 프로그램을 실행하는 방법은 무엇입니까? Feb 07, 2025 pm 12:11 PM

Spring Boot는 강력하고 확장 가능하며 생산 가능한 Java 응용 프로그램의 생성을 단순화하여 Java 개발에 혁명을 일으킨다. Spring Ecosystem에 내재 된 "구성에 대한 협약"접근 방식은 수동 설정, Allo를 최소화합니다.

Java Made Simple: 초보자를 위한 프로그래밍 능력 가이드 Java Made Simple: 초보자를 위한 프로그래밍 능력 가이드 Oct 11, 2024 pm 06:30 PM

간단해진 Java: 강력한 프로그래밍을 위한 초보자 가이드 소개 Java는 모바일 애플리케이션에서 엔터프라이즈 수준 시스템에 이르기까지 모든 분야에서 사용되는 강력한 프로그래밍 언어입니다. 초보자의 경우 Java의 구문은 간단하고 이해하기 쉬우므로 프로그래밍 학습에 이상적인 선택입니다. 기본 구문 Java는 클래스 기반 객체 지향 프로그래밍 패러다임을 사용합니다. 클래스는 관련 데이터와 동작을 함께 구성하는 템플릿입니다. 다음은 간단한 Java 클래스 예입니다. publicclassPerson{privateStringname;privateintage;

Gate.io 교환 초보자 등록 및 거래 자습서 Gate.io 교환 초보자 등록 및 거래 자습서 Feb 21, 2025 pm 09:54 PM

Gate.io Exchange는 세계 최고의 암호 화폐 거래 플랫폼 중 하나입니다. 이 안내서는 사용자가 GATE.IO를 등록하고 거래 할 수 있도록 단계별 자습서를 제공합니다. 등록 절차에는 등록 방법 (전화, 이메일 또는 소셜 계정) 선택, 정보 작성, 로그인 암호 설정 및 ID 인증 완료가 포함됩니다. 거래 자습서에는 거래 페이지 액세스, 거래 쌍 선택, 거래 정보 입력, 주문 제기 및 주문 상태보기가 포함됩니다. 이 기사의 지침을 통해 사용자는 Gate.io에서 Cryptocurrency 거래를 쉽게 시작할 수 있습니다.

See all articles