测试用例添加 setUp()方法之后执行错误?

ProductTest 文件#

<?php

namespace Tests\Unit;

use Tests\TestCase;
use Illuminate\Foundation\Testing\WithFaker;
use Illuminate\Foundation\Testing\RefreshDatabase;
use App\Product;

class ProductTest extends TestCase
{
    public $product;

    public function setUp()
    {
        parent::setUp();
        $this->product = new Product('xiaocai', 59);
    }
    /**
     * A basic unit test example.
     *
     * @return void
     */
    public function testName()
    {
        $this->assertEquals('xiaocai', $this->product->name());
    }

    public function testPrice()
    {
        $this->assertEquals(59, $this->product->price());
    }
}

执行./vendor/bin/phpunit --filter ProductTest 之后出现如下错误#

$ ./vendor/bin/phpunit --filter ProductTest
PHP Fatal error:  Declaration of Tests\Unit\ProductTest::setUp() must be compatible with Illuminate\Foundation\Testing\TestCase::setUp(): void in D:\study\XAMPP\htdocs\laravel-phpunit\tests\Unit\ProductTest.php on line 33

Fatal error: Declaration of Tests\Unit\ProductTest::setUp() must be compatible with Illuminate\Foundation\Testing\TestCase::setUp(): void in D:\study\XAMPP\htdocs\laravel-phpunit\tests\Unit\ProductTest.php on line 33
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
Shuyi
最佳答案

哦,你用的 5.8 啊,5.8 要求 setUp tearDown 的返回类型为 void

  public function setUp() :void
    {
        parent::setUp();
        $this->product = new Product('xiaocai', 59);
    }
5年前 评论
Shuyi (作者) 5年前
讨论数量: 4
Shuyi

哦,你用的 5.8 啊,5.8 要求 setUp tearDown 的返回类型为 void

  public function setUp() :void
    {
        parent::setUp();
        $this->product = new Product('xiaocai', 59);
    }
5年前 评论
Shuyi (作者) 5年前
Shuyi

哦,你用的 5.8 啊,5.8 要求 setUp tearDown 的返回类型为 void

  public function setUp() :void
    {
        parent::setUp();
        $this->product = new Product('xiaocai', 59);
    }
5年前 评论
Shuyi (作者) 5年前
洛未必达

楼上正解

5年前 评论

@Shuyi 才想起来 php7 的新特性,谢谢啦

5年前 评论