1

是否有任何方法将代码集成到laravel中,我可以在我的控制器中使用它?集成在laravel中使用的代码

例如假设我有一个路线Route::post('/plugins/test', [email protected]_plugins)

在我PluginController类我想测试我的应用程序是否工作正常与否。就我而言,我想使用相同的语义在codeception验收测试,像更新插件后检查:

public function test_plugins(){ 
$I = new AcceptanceTester($scenario); 
$I->wantTo('check that ... '); 
$I->amOnPage('/plugins'); 
$I->seeInDatabase(...); 
.... 

return "site works (not) correctly"; 
} 

我使用Laravel 4.2

干杯 雅各布

+0

你有什么进展吗? – user2094178

回答

2

我认为你试图以错误的方式去做。控制器从不应该测试任何东控制器是一种只知道在路由被调用时该怎么做的事情。这意味着您可能需要从控制器调用控制台命令,该控制器将运行您的测试,但不会在控制器本身写入测试代码。

所以要实现你想要做的步骤是:

  1. 在您的测试文件夹
  2. 创建测试服像往常一样创建控制器
  3. 调用./vendor/bin/codecept运行单位YourTestCest
+0

谢谢,这实际上是可能的!但是,如果我想让我的应用程序的任何用户能够创建自定义测试?我无法设置预定义的测试,对吧? –

+0

我认为它真的不常见的情况下允许用户创建自己的测试,因为他们可以写一些破坏性的代码,将打破一切。 只有当您的用户在运行测试之前创建的某种独立游乐场中工作并在测试完成后销毁时,才可以。 –

+0

在这种情况下,您仍然可以允许用户通过API运行控制台命令,这将生成空的测试套件。然后让他们编辑并运行这些套件,就像我之前所描述的那样。你正在试图制作嵌合体,因为你的测试用例正在使用你的应用程序,但你希望你的应用程序使用正在使用你的应用程序的测试:) –