定制 matthiasnoback/behat-expect-exception 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

matthiasnoback/behat-expect-exception

最新稳定版本:v1.0.0

Composer 安装命令:

composer require matthiasnoback/behat-expect-exception

包简介

README 文档

README

composer require --dev matthiasnoback/behat-expect-exception

Purpose

This library lets you run code in one step definition that is expected to thrown an exception, then in another step definition allows you to verify that the correct exception was caught. Just like with PHPUnit you can compare the type of the caught exception to the expected type, and you can check if the actual exception message contains a given string.

Usage example

use Behat\Behat\Context\Context;
use BehatExpectException\ExpectException;

final class FeatureContext implements Context
{
    // Use this trait in your feature context:
    use ExpectException;

    /**
     * @When I try to make a reservation for :numberOfSeats seats
     */
    public function iTryToMakeAReservation(int $numberOfSeats): void
    {
        /* 
         * Catch an exception using $this->shouldFail().
         * If the code in the callable doesn't throw an exception, shouldFail()
         * itself will throw an ExpectedAnException exception.
         */
        
        $this->shouldFail(
            function () use ($numberOfSeats) {
                // This will throw a CouldNotMakeReservation exception:
                $this->reservationService()->makeReservation($numberOfSeats);
            }
        );
    }

    /**
     * @Then I should see an error message saying: :message
     */
    public function confirmCaughtExceptionMatchesExpectedTypeAndMessage(string $message): void
    {
        $this->assertCaughtExceptionMatches(
            CouldNotMakeReservation::class,
            $message
        );
    }
    
    /**
     * @When I make a reservation for :numberOfSeats seats
     */
    public function iMakeAReservation(int $numberOfSeats): void
    {
        /*
         * Catch a possible exception using $this->mayFail().
         * If the code in the callable doesn't throw an exception,
         * then it's not a problem. mayFail() doesn't throw an
         * ExpectedAnException exception itself in that case.
         * You can still use assertCaughtExceptionMatches(), but
         * it will throw an ExpectedAnException if no exception was
         * caught. 
         */
        
        $this->mayFail(
            function () use ($numberOfSeats) {
                // This might throw a CouldNotMakeReservation exception:
                $this->reservationService()->makeReservation($numberOfSeats);
            }
        );
    }
}

Maintenance

  • Run composer install to install project dependencies (requires PHP 8.4 and Composer globally installed)
  • Run composer fix to fix coding style
  • Run composer test to run the tests

统计信息

  • 总下载量: 83.44k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 22
  • 点击次数: 1
  • 依赖项目数: 1
  • 推荐数: 0

GitHub 信息

  • Stars: 22
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2019-10-04