有可能使用PHpspec与behat?,或者只是PhPunit with what ?(Symfony)



这些天我在玩一些Behat,问题是我不知道我是否可以使用PHPspec与Behat"断言"所有的东西,这个是如此的可读,我想使用它。在我的例子中,我使用Symfony。

如果没有,我怎么能使用断言从PHPunit在Behat。我现在不能,我用composer安装了PHPUnit,但在Behat文档中他们需要一个文件,但场景略有不同(他们没有通过使用composer安装它,不在Vendor目录中)

来自DOC的URL: http://docs.behat.org/quick_intro.html#more-about-features

, require_once有点优雅。

任何想法?有答案吗?,谢谢!

你可以让phpspec的匹配器与expect helper一起工作。

使用的几个例子:

// matches if $something === 'something'
expect($something)->toBe('something');
// matches if $article->isActive() returns true
expect($article)->toBeActive(); 
// matches if $article->hasComments() returns false
expect($article)->notToHaveComments();

您当然可以在PHPUnit中使用Bahat。我没有尝试使用PHPSpec,但我确信如果您可以访问执行断言的逻辑,这是可能的。通常,任何测试框架都会为"外部用户"公开该逻辑。

/**
 * @Then /^the magic should happen$/
 */
public function assertUnicornsExist()
{
    // Make standard assertions through static calls…
    PHPUnit_Framework_TestCase::assertTrue(true);
}

我不确定我得到了关于安装的全图,但是如果你使用composer,你可以简单地配置"自动加载"部分来包含你的源代码和上下文(如果它们是分开的)。我的工作基本上是开箱即用的:

{
    "require": {
        "behat/behat": "dev-master",
        "behat/mink": "dev-master",
        "behat/mink-extension": "dev-master",
        "behat/mink-browserkit-driver": "dev-master",
        "behat/mink-goutte-driver": "dev-master",
        "phpunit/dbunit": "*"
    },
    "autoload": {
        "psr-0": {
            "": "src/"
        }
    }
}

那么你只包括vendor/autoload.php。我建议添加一个引导程序,使用@BeforeSuite钩子只运行一次。

/**
 * @BeforeSuite
 */
 public static function setUpSuite(BeforeSuiteScope $scope)
 {
     // if not bootstrapped already, then include bootstrap with init'ing the autoloader, etc…
 }

另外,如果您从Behat 3开始—文档还没有,请使用http://behat.readthedocs.org/en/latest/。

当然有可能。您可以使用behat来描述某些东西应该如何表现,而使用phpspec来描述更详细的东西。下面是一个很好的例子:http://code.tutsplus.com/tutorials/a-bdd-workflow-with-behat-and-phpspec--cms-21601

相关内容

  • 没有找到相关文章

最新更新