플러그인 개발을위한 유닛 테스트


17

플러그인 중 하나에 대해 단위 테스트를 적용해야합니다. 최근에 클래스로 다시 설계 했으므로 이제 단위 테스트를 쉽게 적용 할 수 있습니다.

플러그인을 단위 테스트하기위한 효과적인 전략은 무엇입니까? 플러그인에서 사용되는 WordPress 기능을 사용하는 방법이 필요하지만 실행중인 WordPress 사이트 (DB AFAIK에서 데이터 테스트)는 필요하지 않습니다.

사이트 컨텍스트에서 플러그인이 아닌 플러그인을 단위 테스트하는 방법을 알아내는 데 어려움을 겪고 있습니다. 나는 이것을 위해 Selenium을 사용할 수 있었지만 지금은 플러그인 클래스 기능을 단위 테스트하는 데 중점을 두어 각 업데이트로 중단하지 않도록하고 싶습니다.

답변:


14

대화 형 대행사에 상주하는 대규모 비즈니스 유형을 구축하는 전 소프트웨어 엔지니어로서 Wordpress를 개발할 때 테스트에 대해 몇 가지 생각을하겠습니다.

  1. 당신의 단위 테스팅은 클래스가 수행 할 수있는 최소의 행동을 테스트해야합니다. 각 클래스는 Wordpress와 독립적으로 테스트 할 수 있어야합니다. Wordpress 종속성이있는 경우이 문제를 해결하기 위해 테스트에서 모의 ​​객체 및 / 또는 메서드를 만드는 것이 좋습니다. 궁극적으로 이것은 코드 작성 방식을 변경하지만 훨씬 더 테스트 가능합니다. 평소처럼 무료 점심은 없습니다.

  2. 기능 테스트 수준에 도달하면 Wordpress 종속성으로 코드를 테스트 할 수 있습니다. 플러그인이 실제로 서비스를 수행하는지 테스트하는 곳입니다.

  3. 플러그인의 기능에 따라-ID를 사용하여 DOM에 데이터가 있는지 테스트하는 Selenium 기반 테스트 사용을 고려하십시오. 합리적으로 견고하며 버전을 깰 가능성이 훨씬 적습니다. 여기서도 요점은 테스트를 소프트웨어 개발 수명주기의 일부로 생각하는 것입니다. 코드의 큰 변화는 테스트에서 큰 변화로 이어집니다. 사업 비용의 모든 부분.

이 작업을 수행하기 위해 도구에 대한 도움이 필요한 경우 새 질문을 열면 기꺼이 답변 해 드리겠습니다. 나는 내가하는 일에서 PHPUnit과 셀레늄 확장을 모두 사용합니다.


1
이단, 전문적인 답변 감사합니다. 이 커뮤니티에서 덜 기대할 수는 없었습니다. :) 클래스에 대한 단위 테스트를 작성하고 WordPress의 함수를 해결할 수있는 모의 객체를 만들려고합니다. 2 단계는 실제로 어려운 부분입니다. 나중에 Selenium을 사용할 수있는 일종의 자동 테스트를 위해 WordPress instace가 필요하기 때문입니다. PHPUnit부터 시작해서 어떻게 진행되는지 보겠습니다. 감사!
Fernando Briano 2019

완벽한 답변!
rsman


-1

최근에 인터넷 검색에서 정보를 가져 오는 방법을 보여주는 자습서를 만들었습니다.

  1. 워드 프레스 코어 사용 단위 테스트 사용
  2. 더 이상 사용되지 않는 PHP / 세션 전송 경고 숨기기
  3. 테스트에서 플러그인 옵션을 설정하는 방법을 보여줍니다.
  4. 동일한 wp core make 단위 테스트를 사용하여 여러 플러그인 테스트

튜토리얼이 여기 있습니다. 도움이 되길 바랍니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.