【发布时间】:2013-05-30 14:23:24
【问题描述】:
在工作台中测试我的包的方法是什么。如果我编写单元测试,则不会自动加载任何类。所以这意味着:
<?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'));
}
}
导致错误提示找不到类 TestCase。当我将类 TestCase 添加到我的 composer.json (我的包文件夹中的那个)的自动加载中时,该类可用。但是,我收到下一个错误,即“Illuminate\Foundation\Testing\TestCase”不可用等。等等。 所以我的问题是我应该在我的包文件夹中的 composer.json 中自动加载什么?就像我的主要 composer.json 中的所有内容一样,或者还有其他一些我遗漏的方式。
我知道手册上写着“
您可以从 workbench/[vendor]/[package] 目录 git init 并直接从 workbench git push 您的包!这将允许您在应用程序上下文中方便地开发包,而不会被不断的作曲家更新命令所困扰。
但是我不明白这一点。有人可以解释这是什么意思吗?顺便说一句,我熟悉 git。我只是不明白上下文。
编辑1 据我现在了解,您将包推送到存储库,然后将其作为包包含在您的主 composer.json 中。我只是不明白这对开发有什么帮助。希望我理解错了.. :)
EDIT2 我错了。你把你的包放在工作台上,直到它稳定为止。就像 Nils 在下面指出的那样。问题仍然存在。如何创建一个可以在启动应用程序时进行单元测试的环境。我的意思是像测试一个模型,我可以在其中模拟外观等。或者在工作台中这样做是不好的做法?
【问题讨论】:
-
手册说的正好相反:如果你在开发过程中把你的包放在工作台上,你就不必使用composer。一旦它稳定并且您想在其他地方使用它,您可以将它添加到 composer.json。
-
谢谢。那是真实的。那么 git push 语句是关于哪里的呢?
-
那么您希望您的捆绑包(当前位于
workbench中的捆绑包)处于版本控制之下,但与composer分离。因此,如果您使用 git,您可以在您的workspace中执行git push。您的捆绑包不会显示在composer.json中,但可以安装在您的系统中。 -
是的,好的。这就说得通了。这就是我认为它的意思,但我很困惑。所以这意味着我已经在包的 composer.json 中手动添加了依赖项。谢谢
-
我已经在stackoverflow.com/a/25391078/747802 回答了对我有用的方法。
标签: unit-testing laravel workbench