Prophecy를 사용하여 PHP 기능을 확장하려면 다음 단계를 따르세요. Composer를 사용하여 Prophecy를 설치하세요. 스텁 객체를 생성하려면 prophesize() 메서드를 사용하십시오. 스텁 객체의 동작을 구성하려면 will() 메서드를 사용하세요. shouldHaveBeenCalled() 메서드를 사용하여 스텁 개체가 호출되었는지 확인합니다.
Prophecy는 PHP의 유연하고 강력한 스텁 프레임워크입니다. 이를 통해 테스트 중인 코드를 실제로 수정하지 않고도 테스트 목적으로 사용할 수 있는 스텁 개체를 쉽게 만들 수 있습니다.
Prophecy 설치
먼저 Composer를 사용하여 Prophecy를 설치하세요:
composer require prophecy/prophecy
스텁 객체 생성
스텁 객체를 생성하려면 prophesize()
메소드를 사용하세요: prophesize()
方法:
$stub = $prophecy->prophesize();
此代码将创建一个桩对象,该对象充当未指定的类或接口。
配置桩对象
接下来,您可以使用 will()
方法配置桩对象的行为。例如,要配置 getName()
方法返回 "John Doe",请使用:
$stub->getName()->willReturn('John Doe');
验证调用
要验证桩对象是否已被调用,可以使用 shouldHaveBeenCalled()
方法:
$stub->getName()->shouldHaveBeenCalled();
实战案例
假设我们有一个函数 greet()
,它接受一个名称参数并打印一条问候信息。
function greet($name) { echo "Hello, $name!"; }
我们可以使用 Prophecy 创建一个桩对象来测试 greet()
函数:
use Prophecy\Prophet; class GreetTest extends PHPUnit_Framework_TestCase { public function testGreet() { $prophet = new Prophet; $stub = $prophet->prophesize(); $stub->getName()->willReturn('John Doe'); greet($stub->reveal()); $stub->getName()->shouldHaveBeenCalled(); } }
此测试确保 getName()
方法已被调用,并且 greet()
rrreee
will()
메서드를 사용하여 스텁 개체의 동작을 구성할 수 있습니다. 예를 들어, "John Doe"를 반환하도록 getName()
메서드를 구성하려면 다음을 사용하세요. 🎜rrreee🎜🎜Verify call🎜🎜🎜스텁 개체가 호출되었는지 확인하려면 shouldHaveBeenCalled()
메서드: 🎜rrreee🎜🎜실용 사례🎜🎜🎜name 매개변수를 받아들이고 인사말 메시지를 인쇄하는 greet()
함수가 있다고 가정합니다. 🎜rrreee🎜우리는 Prophecy를 사용하여 greet()
함수를 테스트하기 위한 스텁 개체를 생성할 수 있습니다. 🎜rrreee🎜이 테스트는 getName()
메서드가 호출되었는지 확인하고 Greeting()
함수는 올바른 인사말을 인쇄합니다. 🎜위 내용은 Prophecy를 사용하여 PHP 기능을 확장하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!