[PHPUnit] 스웨터와 스웨터.

9137 단어 PHP
  • 스타벅스와 오토바이가 잘 섞여있다
  • 매번 "이럼 맞지..."이렇게 불안하게 조사하고 있으니 메모지.

    이중 테스트


    테스트용 대용품을 가리킨다.

    스타벅스


    테스트 대상의 함수에서 호출된 다른 함수의 테스트 쌍.
    보존을 만드는 목적은 구상한 값을 되돌려 주는 것입니다.

    테스트하고 싶은 함수 A가 있습니다.
    함수 A에 사용되는 함수 B가 있다고 가정합니다.

    함수 A를 테스트할 때 함수 B를 동시에 테스트할 필요가 없다.
    함수 B의 처리 테스트는 함수 B의 테스트에서만 진행됩니다.

    이제 함수 B는 "이 값으로 돌아가기"만 하면 됩니다.
    따라서 함수 B가 기대치의 보존만 되돌려준다고 해도
    함수 A의 처리 내용은 테스트할 수 있다.

    캔버스


    테스트 대상 함수에서 호출되는 다른 종류의 테스트 쌍을 가리킨다.
    모듈을 만드는 목적은

  • 테스트 모듈화 클래스의 함수 호출

  • 모듈화 클래스의 함수가 예상한 값을 되돌려줍니다
  • 
    <?php
    use PHPUnit\Framework\TestCase;
    
    class SubjectTest extends TestCase
    {
        public function testObserversAreUpdated()
        {
            // Observer クラスのモックを作成します。
            // update() メソッドのみのモックです。
            $observer = $this->getMockBuilder(Observer::class)
                             ->setMethods(['update'])
                             ->getMock();
    
            // update() メソッドが一度だけコールされ、その際の
            // パラメータは文字列 'something' となる、
            // ということを期待しています。
            $observer->expects($this->once())
                     ->method('update')
                     ->with($this->equalTo('something'));
    
            // Subject オブジェクトを作成し、Observer オブジェクトの
            // モックをアタッチします。
            $subject = new Subject('My subject');
            $subject->attach($observer);
    
            // $subject オブジェクトの doSomething() メソッドをコールします。
            // これは、Observer オブジェクトのモックの update() メソッドを、
            // 文字列 'something' を引数としてコールすることを期待されています。
            $subject->doSomething();
        }
    }
    ?>
    
    샘플 코드는 PHPUnit의 공식 홈페이지에서 주워온 것이다.Subject 학급 테스트 중의 모듈 사용 방법에 대해 순서대로 살펴보겠습니다.

    캔버스의 준비

    
            $observer = $this->getMockBuilder(Observer::class)
                             ->setMethods(['update'])
                             ->getMock();
    
    모크를 사용할 때는 먼저 모크를 만들어야 한다.
  • getMockBuilder를 사용하여 Observer 클래스를 만드는 모듈
  • setMethods에서 모듈화된 종류를 바꾸는 update 방법
  • getMock()에 생성된 모듈 가져오기
  • 여기까지는 캔버스 가방 준비입니다.

    모듈 설정

    
            $observer->expects($this->once())
                     ->method('update')
                     ->with($this->equalTo('something'));
    
    이 시험에서 모듈화된 반을 결정하는 행위.
  • expects 모듈을 호출하는 횟수는 1회
  • method 모듈에서 호출하는 방법update
  • with 매개 변수로 전달되는 값은 something와 일치한다
  • 모듈을 사용한 Subject 클래스 테스트

    
            $subject = new Subject('My subject');
            $subject->attach($observer);
            $subject->doSomething();
    
    
    모듈을 사용하지 않는 테스트와 같이 Subject클래스에서 대상을 만듭니다.attach에 생성된 모듈$observer$subject로 설정합니다.doSomething 호출 방법.

    참조 페이지


    8. 이중 테스트 - PHPUnit latest Manul
    https://phpunit.readthedocs.io/ja/latest/test-doubles.html?highlight=attach#test-doubles-mock-objects-examples-subjecttest-php
    PHPUnit의 Mock 객체 사용법 구조에서 이해 – 중요 블로그
    https://taisablog.com/archives/55
    오토바이, 스타벅스, 운전사...| 나가사키 시노쇼의 WEB 기술연구소
    http://www.ishizaki-me.com/?p=1454
    [PHP] PHPUnit의 step와 mock의 차이 - 간단한 프로그래머의 비망록
    https://www.84kure.com/blog/2015/10/03/php-phpunit%E3%81%AE%E3%82%B9%E3%82%BF%E3%83%96%E3%81%A8%E3%83%A2%E3%83%83%E3%82%AF%E3%81%AE%E9%81%95%E3%81%84%E3%81%A8%E3%81%AF/
    모듈 개체를 이용한 테스트-pixiv inside[archive]
    https://devpixiv.hatenablog.com/entry/2014/12/11/192708
    Test Double 및 PHPUnit |akkunchoi@github
    http://akkunchoi.github.io/test-double-phpunit.html
    더 많은 PHPUnit – Simple IT Life
    https://simple-it-life.com/2016/02/26/phpunit-more1/
    PHPUnit 시작 - Qiita
    https://qiita.com/tsuuuuu_san/items/46246168dc36ad2369cc
    PHPUnit에서 mock 함수의 매개변수를 지정하는 방법 - Qiita
    https://qiita.com/sssinsi/items/878d9731cdc0bdd97ed5

    좋은 웹페이지 즐겨찾기