【发布时间】:2017-03-05 17:15:18
【问题描述】:
我有 2 个测试类,所有测试运行良好。但问题是我不知道如何重用其他测试类方法。很抱歉,我是 Phpunit 的新手,我已经在搜索,但找不到解决方案。
class A_Test {
public function create_something_1()
{
$this->visit('/a/create')
->type('Name','name')
->press('Submit')
->seeInDatabase('something_1', ['name' => 'Name']);
$data = \App\Models\Something1::first();
return $data;
}
}
class B_Test {
public function create_something_2()
{
// The problem is here, I result of new A_Test always null
$a = (new A_Test)->create_something_1();
$this->visit('/b/create')
->select($a->id, 'something_1')
->type('New Name','name')
->press('Submit')
->seeInDatabase('something_2', ['name' => 'New Name']);
}
}
所以为了让 B_Test 工作,我总是像这样复制 A_Test 类中的方法
class B_Test {
public function create_something_1()
{
$this->visit('/a/create')
->type('Name','name')
->press('Submit')
->seeInDatabase('something_1', ['name' => 'Name']);
$data = \App\Models\Something1::first();
return $data;
}
public function create_something_2()
{
// This is work
$a = $this->create_something_1();
$this->visit('/b/create')
->select($a->id, 'something_1')
->type('New Name','name')
->press('Submit')
->seeInDatabase('something_2', ['name' => 'New Name']);
}
}
【问题讨论】:
-
你没有扩展
TestCase类?那里有一个TestCase类,您可以在TestCase.php文件中添加可重用的方法 -
我已经扩展了TestCase,所有的测试工作,只是需要一种方法来重用重复的代码。