我如何测试具有__construct的函数?
对于ex我的控制器代码如下:
namespace App\Http\Controllers;
use App\Repositories\UserAccountRepository;
class UserController extends ProtectedController
{
protected $userAccountRepository;
public function __construct(userAccountRepository
$userAccountRepository){
parent::__construct();
$this->userAccountRepository = $userAccountRepository;
}
public function FunctionWantToTest(){
return 'string';
}
在测试我的FunctionWantToTest之前首先完成构造所需的单元测试。
所以,我的测试代码看起来像,
use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
use App\Http\Controllers\UserController;
class UserTest extends TestCase
{
/**
* A basic test example.
*
* @return void
*/
public function testUserList()
{
$UserController = new UserController(???what value??);
$this->assertTrue(true);
}
}
需要更多帮助(最佳实践)如何测试构造的代码。
答案 0 :(得分:1)
我认为你只需要使用app->make
:
class UserTest extends TestCase
{
protected $userController;
public function setUp() {
parent::setUp();
$this->userController = $this->app->make(UserController::class);
}
/**
* A basic test example.
*
* @return void
*/
public function testUserList()
{
$this->userController // do what you need here...
$this->assertTrue(true);
}
}
答案 1 :(得分:0)
在测试控制器时使用功能测试或集成测试,
您可以看到有关单元测试和集成测试的简要说明。
What's the difference between unit tests and integration tests?