찾다

 >  Q&A  >  본문

Laravel 9.x에서 부분 조롱 사용 문제

<p>안녕하세요 laravel 개발자 여러분, 부분 모의 문제를 발견했습니다. 모의가 필요한 내부 메서드를 사용하는 메서드를 테스트해야 합니다. 다음 아이디어처럼 메서드를 모의하기 위해 여러 메서드를 사용해 보았습니다. < ; /p> <pre class="brush:php;toolbar:false;">#1 $mockMyClass = 조롱::mock( $myClassInstance )->makePartial(); #2 $mockMyClass = $this->partialMock(); #삼 $mockMyClass = $this->createPartialMock(); // 그런 다음 $mockMyClass->shouldReceive('internalMethod') ->andReturn($responseInternalMethod);</pre> <p>그리고 분명히 Laravel Mocking Objects 문서에 설명된 방식을 사용합니다</p> <pre class="brush:php;toolbar:false;">AppService 사용; MockeryMockInterface를 사용하세요. $mock = $this->partialMock(Service::class, function (MockInterface $mock) { $mock->shouldReceive('프로세스')->한 번(); });</pre> <p>이 아이디어 중 어느 것도 작동하지 않습니다. $mockMyClass는 항상 $responseInternalMethod를 반환해야 하는 모의 메서드가 아닌 실제 메서드를 실행합니다. 누구든지 이 문제가 있습니까? 로컬 환경이 아닌 Laravel, Mockito 또는 외부의 문제인지 확인해야겠습니다. 하하. 나는 당신을 읽었습니다! </p> <p>기술적 세부정보: 라라벨 9.x PHP 8.1 PHP 유닛 9.5 도발 1.5</p>
P粉726234648P粉726234648455일 전536

모든 응답(1)나는 대답할 것이다

  • P粉885035114

    P粉8850351142023-09-03 17:16:49

    좋아요, 해결책을 찾았지만 어쨌든 이 문제가 있는 사람이 있는지 알고 싶습니다

    이 문제에 대한 나의 해결책은 다음과 같습니다.

    으아악 이러한 경우에 대한 해결책은 내 클래스의 모의 인스턴스를 직접 만들고 생성자에 필요한 모든 매개 변수를 종속성 또는 데이터로 전달하는 것입니다. 그런 다음 모의 클래스를 실제 클래스로 사용하여 테스트 루프를 계속합니다.

    회신하다
    0
  • 취소회신하다