Laravel工作台单元测试

dri*_*hel 1 unit-testing workbench laravel

在工作台中测试我的包的方法是什么?如果我编写单元测试,那么没有类自动加载.所以这意味着:

<?php

use \Mockery as m;

class ExampleTest extends TestCase {

public function tearDown()
{
    m::close();
}

/**
 * A basic functional test example.
 *
 * @return void
 */
public function testShouldReturnValidServer()
{

    $mock = m::mock('MailChimp[sendCurl]');

    MailChimp::listSubscribe( array( 'id' => 'c79a023ff2', 'email_address' => 'dennieriechelman@gmail.com'));

   }
}
Run Code Online (Sandbox Code Playgroud)

导致错误,表示找不到类TestCase.当我在我的composer.json(我的包文件夹中的那个)中将类TestCase添加到自动加载中时,该类可用.然而,我得到了下一个错误"Illuminate\Foundation\Testing\TestCase"不可用等等.所以我的问题是我应该在我的包文件夹中的composer.json中自动加载什么?一切就像在我的主composer.json中一样,或者还有其他一些我想念的方式.

我知道在曼努埃尔它说"

你可以从workbench/[vendor]/[package]目录获取init,然后从工作台直接推送你的包!这将允许您在应用程序上下文中方便地开发包,而不会被常量编写器更新命令所困扰.

但是我不明白这一点.有人可以解释这是什么意思吗?顺便说一句,我熟悉git.我只是没有得到上下文.

EDIT1据我所知,现在是你将包推送到你的存储库,然后将它作为包包含在你的main composer.json中.我只是看不出这对开发时有什么帮助.希望我明白这个错误.. :)

EDIT2我错了.您将包装保留在工作台中,直到它稳定.就像尼尔斯在下面指出的那样.问题仍然存在.如何创建一个可以在应用程序启动时进行单元测试的环境.我的意思是测试模型,我可以嘲笑外墙等.或者在工作台的不良做法中这样做?

cry*_*one 7

我在https://github.com/orchestral/testbench上为此创建了一个包

  • 你将如何运行工作台测试?来自`workbench/vendor/package`的`phpunit`或来自laravel根?你是否需要更新laravel`phpunit.xml`文件或在工作台包中添加一个? (2认同)