목차
문제를 찾아 시간을 절약하세요
자체 녹음
건축
代码的语言
结论
CMS 튜토리얼 Word누르다 단위 테스트 이론(계속): 2부

단위 테스트 이론(계속): 2부

Sep 02, 2023 pm 02:37 PM

单元测试理论(续):第 2 部分

지난 기사에서는 WordPress의 단위 테스트 이론에 대해 논의하기 시작했습니다. 특히 단위 테스트 테마 및 플러그인에 대한 작업을 검토한 다음 코드 단위에 대해 논의하고 이것이 테스트에 어떤 영향을 미치는지 논의하며 더 넓은 소프트웨어 개발 세계에서 단위 테스트를 검토합니다.

WordPress의 단위 테스트 이론에 대해 계속해서 논의할 예정이지만 문제 식별, 아키텍처 구동, 문서 프로젝트 등에 어떻게 도움이 될 수 있는지에 대한 관점에서 논의하겠습니다.


문제를 찾아 시간을 절약하세요

이 시리즈의 앞부분에서 단위 테스트에 대한 전통적인 접근 방식은 다음과 같습니다.

  • 테스트를 작성하고 실행하세요(실패할 것임을 알고 있음)
  • 이 메서드를 통과시키는 함수를 작성하세요.
  • 테스트를 실행해 보세요. 테스트가 실패하면 해당 기능에 대한 작업을 계속하세요. 그렇지 않으면 다음 단계로 이동하세요.

예, 첫 번째 단계는 약간 독단적입니다. 실패할 것임을 알면서도 왜 실행에 시간을 낭비합니까? 그러나 당신은 요점을 이해합니다. 그러나 이 특정 기술을 개발에 적용하기 시작하면 코드를 작성할 때 특정 리듬이 개발된다는 것을 알게 될 것이며 이것이 전체 목표의 일부입니다.

하지만 그것은 절반에 불과합니다. 단위 테스트는 실제로 개발 초기에 문제를 파악하는 데 도움이 될 수 있습니다.

이를 이해하려면 이 아이디어를 검토하는 것이 가장 좋습니다.

사용자가 실제로 WordPress 대시보드에 로그인하지 않고도 사용자 계정을 생성할 수 있도록 하는 WordPress 기반 프로젝트용 기능을 개발 중이라고 가정해 보겠습니다. 이는 등록, 필요한 확인, 비밀번호 및 이메일 생성을 위한 코드를 처리하기 위한 페이지 템플릿을 설정했다고 가정합니다.

브라우저에 페이지를 로드하고 일부 사용자를 생성하려고 합니다. 일부는 동일한 이메일 주소를 사용하고 일부는 잘못된 비밀번호를 사용하고 일부는 불법 문자를 사용하는 등의 작업을 수행합니다. 아이디어를 얻었습니다. 통과 및 실패를 확인하는 방법에는 여러 가지가 있습니다. 이건 너무 거칠다! 즉, 사용자 등록 기능을 변경할 때마다 동일한 n번의 등록을 수행해야 문제가 발생하지 않는다는 것을 의미합니다.

또는 이를 처리하고 코드가 변경될 때마다 실행할 테스트 세트를 작성할 수도 있습니다.

그렇습니다. 단위 테스트를 작성하는 데는 많은 시간이 걸릴 수 있지만, 코드 단위를 수정할 때마다 절약되는 시간을 살펴보세요. 이는 그만한 가치가 있으며 누군가가 테스트의 한 순열을 모의하는 것을 잊어버렸기 때문에 놓쳤을 수 있는 문제를 조기에(즉, 프로덕션으로 출시하기 전에) 파악하는 데 도움이 될 수 있습니다.


자체 녹음

단위 테스트를 작성할 때 코드가 실제로 작동하는지 확인하여 코드 품질을 향상시킬 뿐만 아니라 기본적으로 개발자용 문서도 제공합니다.

제품에 내장된 기능을 단위 테스트하는 경우 기능이 작동하는 방식, 실패해야 하는 시기, 통과해야 하는 경우에 대한 문서를 제공합니다.

여기에는 몇 가지 가정이 있습니다. 특히 함수 및 관련 테스트의 이름을 논리적으로 지정하고 그룹화하며 각 함수를 올바르게 테스트하고 있습니다.

PHPUnit을 사용하면 WordPress 단위 테스트에서 읽기 쉬운 어설션을 쉽게 실행할 수 있습니다. 프로젝트를 구성하는 함수에서 사용할 수 있는 AssertTrue, AssertFalse 또는 기타 어설션을 선언하기만 하면 됩니다.

위의 예에 따르면 이는 빈 이메일 주소로 등록하려고 할 때 사용자 등록 기능이 실패하도록 보장하는 함수를 작성할 수 있음을 의미합니다.

으아악

간단한 예일 수도 있지만 요점은 남아 있습니다. 코드는 자체 문서화되며 명확한 단위 테스트만 작성하면 됩니다.


건축

단위 테스트의 가장 과소평가된 장점 중 하나는 프로젝트 아키텍처를 추진하는 데 도움이 될 수 있다는 것입니다. 일반적으로 테마 또는 플러그인 개발은 다음 두 가지 방법 중 하나로 시작할 수 있습니다.

  1. 함수 나열, UI 그리기, 코드 작성
  2. 파일이 함께 작동하는 방식에 대한 다이어그램을 그린 다음 코드를 작성하세요

이것들은 본질적으로 나쁜 것은 아니지만 약하다고 생각합니다(내가 공유하고 싶은 것보다 더 많은 일을 한다는 것을 가장 먼저 인정하겠습니다!). 하지만 "코드 작성" 단계에는 많은 책임이 따릅니다. 그렇지 않나요?

오랫동안 코딩을 해온 사람이라면 누구나 “아…

운이 좋다면 이는 일반적으로 무시한 사례를 처리하기 위해 도우미 메서드나 다른 조건문을 작성할 수 있음을 의미하지만, 최악의 경우 이 문제를 해결하기 위해 전체 클래스 또는 전체 컬렉션 함수를 다시 디자인해야 할 수도 있음을 의미합니다. .

단위 테스트는 완벽하지는 않지만 이러한 상황을 완화하는 데 도움이 될 수 있습니다.

처음부터 테마나 플러그인이 제공하기를 원하는 모든 기능의 목록이 있다는 사실을 생각해 보세요. 아직 코드를 작성하지 않았지만 UI 스케치 및/또는 클래스 다이어그램 세트가 있을 수 있습니다.

接下来,您开始编写要编写的测试以测试您的项目。回想一下,单元测试的一部分是将代码分解为尽可能的原子单元,因此您的任务是为每个单元编写单元测试,咳咳

由于单元测试的性质,您本质上会以不同的方式思考您的代码:您正在考虑“编写测试”,而不是“编写代码”,并且因为您必须在更原子的级别上进行思考,您会情不自禁地考虑经常被归入“编写代码”的边缘案例。


代码的语言

作为开发人员,我们非常习惯使用不断强化我们编写代码的约定。我的意思是,我们倾向于提供缩写的变量名称、神秘的函数名称和类名称,这些名称对于您自己或项目团队之外的任何人来说可能没有任何意义。

单元测试不一定是编写更易于阅读的代码的关键,但它可以进一步帮助提供更清晰的函数名称。

回想一下您读过的第一本编程书、您参加的第一堂计算机科学课或者您看到的第一段开源代码,方法名称通常是动词。为什么他们不应该这样?方法是封装代码的方法,做一些事情。但随着我们在项目上工作的时间越来越长,我们变得越来越懒,我们的代码从“register_user_and_email_password()”变成“new_account()”。

显然,前者比后者更清晰,但如果我们致力于高质量的单元测试,并且希望确保我们的单元测试易于阅读,为了使它们易于阅读,我们的函数名称必须易于阅读。

这不是更容易阅读吗:

$this->assertFalse( register_user_and_email_password( '' ) );
로그인 후 복사

而不是这个?

$this->assertFalse( new_account( '' ) );
로그인 후 복사

同样,这也许是一个简单的示例,但原则仍然是:编写良好的单元测试,以帮助自我记录驱动函数语言的代码。


结论

我们已经讨论了单元测试的基础知识以及主要优点,但是我们还没有讨论单元测试带来的缺点,我们甚至还没有考虑如何将其合并到我们的项目中。工作流程。

因此,在下一篇文章中,我们将尝试做到这一点。

위 내용은 단위 테스트 이론(계속): 2부의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 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 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

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

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

WordPress 기사 목록을 조정하는 방법 WordPress 기사 목록을 조정하는 방법 Apr 20, 2025 am 10:48 AM

WordPress 기사 목록을 조정하는 4 가지 방법이 있습니다. 테마 옵션 사용, 플러그인 사용 (예 : Post Type Order, WP Post List, Boxy Sitture), 코드 사용 (Functions.php 파일의 설정 추가) 또는 WordPress 데이터베이스를 직접 수정하십시오.

WordPress 블로그 시작 방법 : 초보자를위한 단계별 안내서 WordPress 블로그 시작 방법 : 초보자를위한 단계별 안내서 Apr 17, 2025 am 08:25 AM

블로그는 사람들이 자신의 의견, 의견 및 의견을 온라인으로 표현할 수있는 이상적인 플랫폼입니다. 많은 초보자들은 자체 웹 사이트를 구축하기를 간절히 원하지만 기술적 장벽이나 비용 문제에 대해 걱정하는 것을 주저합니다. 그러나 플랫폼이 초보자의 기능과 요구를 충족시키기 위해 계속 발전함에 따라 이제 그 어느 때보 다 쉬워지기 시작했습니다. 이 기사에서는 테마 선택에서 플러그인 사용, 보안 및 성능 향상에 이르기까지 WordPress 블로그를 작성하는 방법을 단계별로 안내하여 자신의 웹 사이트를 쉽게 만들 수 있습니다. 블로그 주제와 방향을 선택하십시오 도메인 이름을 구매하거나 호스트를 등록하기 전에 다루려는 주제를 식별하는 것이 가장 좋습니다. 개인 웹 사이트는 여행, 요리, 제품 리뷰, 음악 또는 귀하의 관심사를 불러 일으키는 취미와 관련하여 회전 할 수 있습니다. 진정으로 관심이있는 영역에 중점을두면 지속적인 글쓰기를 장려 할 수 있습니다.

개인화 된 결과를 위해 WordPress에서 사용자 정보에 로그인하는 방법 개인화 된 결과를 위해 WordPress에서 사용자 정보에 로그인하는 방법 Apr 19, 2025 pm 11:57 PM

최근에 사용자가 개인화 된 라이브러리에 좋아하는 게시물을 저장할 수 있도록하여 사용자가 개인화 된 경험을 만드는 방법을 보여주었습니다. 어떤 곳에서 이름을 사용하여 개인화 된 결과를 다른 수준으로 가져갈 수 있습니다 (예 : 환영 화면). 다행히 WordPress를 사용하면 로그인 한 사용자에 대한 정보를 쉽게 얻을 수 있습니다. 이 기사에서는 현재 로그인 한 사용자와 관련된 정보를 검색하는 방법을 보여줍니다. get_currentuserinfo ()를 사용합니다.  기능. 테마의 어느 곳에서나 사용할 수 있습니다 (헤더, 바닥 글, 사이드 바, 페이지 템플릿 등). 작동하려면 사용자에게 로그인해야합니다. 따라서 사용해야합니다.

부모 카테고리의 아카이브 페이지에 자식 카테고리를 표시하는 방법 부모 카테고리의 아카이브 페이지에 자식 카테고리를 표시하는 방법 Apr 19, 2025 pm 11:54 PM

상위 카테고리 아카이브 페이지에 자식 카테고리를 표시하는 방법을 알고 싶습니까? 분류 아카이브 페이지를 사용자 정의 할 때 방문자에게 더 유용하기 위해이를 수행해야 할 수도 있습니다. 이 기사에서는 부모 카테고리 아카이브 페이지에 자식 카테고리를 쉽게 표시하는 방법을 보여줍니다. 하위 범주가 부모 카테고리 아카이브 페이지에 나타나는 이유는 무엇입니까? 부모 카테고리 아카이브 페이지에 모든 자식 카테고리를 표시하면 방문자에게 덜 일반적이고 유용 할 수 있습니다. 예를 들어, 책에 대한 WordPress 블로그를 실행하고 "테마"라는 분류법을 가지고 있다면 독자가 할 수 있도록 "소설", "논픽션"과 같은 하위 세포 체질을 추가 할 수 있습니다.

WordPress에서 만료 후 날짜별로 게시물을 정렬하는 방법 WordPress에서 만료 후 날짜별로 게시물을 정렬하는 방법 Apr 19, 2025 pm 11:48 PM

과거에는 Postexpirator 플러그인을 사용하여 WordPress에서 게시물을 만료하는 방법을 공유했습니다. 활동 목록 웹 사이트를 만들 때이 플러그인이 매우 유용하다는 것을 알았습니다. 만료 된 활동 목록을 쉽게 삭제할 수 있습니다. 둘째,이 플러그인 덕분에 만료 후 날짜에 따라 게시물을 정렬하는 것도 매우 쉽습니다. 이 기사에서는 WordPress에서 만료일로 게시물을 정렬하는 방법을 보여줍니다. 사용자 정의 필드 이름을 변경하기 위해 플러그인의 변경 사항을 반영하도록 업데이트 된 코드. 의견에 알려 주신 Tajim에게 감사드립니다. 특정 프로젝트에서는 이벤트를 사용자 정의 게시물 유형으로 사용합니다. 지금

IFTTT (및 기타)로 WordPress 및 소셜 미디어를 자동화하는 방법 IFTTT (및 기타)로 WordPress 및 소셜 미디어를 자동화하는 방법 Apr 18, 2025 am 11:27 AM

WordPress 웹 사이트 및 소셜 미디어 계정을 자동화하는 방법을 찾고 계십니까? 자동화를 사용하면 Facebook, Twitter, LinkedIn, Instagram 등에서 WordPress 블로그 게시물 또는 업데이트를 자동으로 공유 할 수 있습니다. 이 기사에서는 IFTTT, Zapier 및 Uncanny Automator를 사용하여 WordPress 및 소셜 미디어를 쉽게 자동화하는 방법을 보여 드리겠습니다. WordPress 및 소셜 미디어를 자동화하는 이유는 무엇입니까? WordPre를 자동화하십시오

WordPress에 쿼리 카운트 및 페이지로드 시간을 표시하는 방법 WordPress에 쿼리 카운트 및 페이지로드 시간을 표시하는 방법 Apr 19, 2025 pm 11:51 PM

사용자 중 한 명이 다른 웹 사이트에 바닥 글에 쿼리 수와 페이지로드 시간을 표시하는 방법을 물었습니다. 당신은 종종 웹 사이트의 바닥 글에서 이것을 볼 수 있으며, "1.248 초 만에 64 쿼리"와 같은 것을 표시 할 수 있습니다. 이 기사에서는 WordPress에 쿼리 수와 페이지로드 시간을 표시하는 방법을 보여줍니다. 테마 파일 (예 : footer.php)에서 원하는 곳에서 다음 코드를 붙여 넣으십시오. 쿼리 신

WordPress 호스트를위한 웹 사이트를 구축하는 방법 WordPress 호스트를위한 웹 사이트를 구축하는 방법 Apr 20, 2025 am 11:12 AM

WordPress 호스트를 사용하여 웹 사이트를 구축하려면 다음과 같이 필요합니다. 신뢰할 수있는 호스팅 제공 업체를 선택하십시오. 도메인 이름을 구입하십시오. WordPress 호스팅 계정을 설정하십시오. 주제를 선택하십시오. 페이지와 기사를 추가하십시오. 플러그인을 설치하십시오. 웹 사이트를 사용자 정의하십시오. 귀하의 웹 사이트를 게시하십시오.

See all articles