首页 > 解决方案 > Laravel 单元测试断言函数总是失败

问题描述

我在 Laravel root-->tests-->Unit-->SimpleTest.php 下创建了一个非常基本的单元测试类

在文件中,我导入了我需要测试的控制器类。测试功能是这样的。

class SimpleTest extends TestCase
{
   public function testLoadUsers()
   {
     $controller_obj = new UsersController;
     $data_status = $controller_obj->load_users();
        if($data_status != null){
           $this->assertTrue(true);
         }
        else{
           $this->assertTrue(false);
         }
    }

  }

我像这样在 Artisan 控制台中执行了这个测试用例,

php vendor/phpunit/phpunit/phpunit tests/Unit/SimpleTest.php

这总是失败。我的控制器功能也可以毫无问题地返回数据。我在没有定义任何条件的情况下进行了测试,并且公正,

$this->assertTrue(true);

然后它工作。所以我假设 phpunit test 命令也没有任何问题。

标签: laravelunit-testingphpunitlaravel-unit-test

解决方案


对不起,这不是一个直接的答案。
我想也许你应该通过这个检查 $data_status 的值。

class SimpleTest extends TestCase
{
   public function testLoadUsers()
   {
     $controller_obj = new UsersController;
     $data_status = $controller_obj->load_users();
     $this->expectOutputString('Array');
     print data_status;
   }
}

推荐阅读