按照教程, 编写完测试代码后, 报错不一致. 没有分析出原因.

按照教程, 编写完测试代码后, 报错 Unable to locate factory for [App\Models\Question

按照教程, 走到了这章. 但是这里的报错我搞不懂了, 教程中的报错不一致.

Question 的 factory 文件我已经创建完了. 是什么原因呢?

当才华还支持不起理想时,就应该静下心来好好学习了。
qiuyuhome
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
qiuyuhome
最佳答案
<?php

namespace Tests\Unit;

use App\Models\Answer;
use App\Models\Question;
// 使用 `php artisan make:test QuestionTest --unit` 命令生成后, TestCase 默认使用的是下面的命名空间. 需要改成 `use Tests\TestCase;`
// use PHPUnit\Framework\TestCase;
use Tests\TestCase;
use Illuminate\Foundation\Testing\RefreshDatabase;

class QuestionTest extends TestCase
{
    use RefreshDatabase;

    /**
     * @test
     */
    public function a_question_has_many_answers()
    {
        $question = factory(Question::class)->create();

        factory(Answer::class)->create(['question_id' => $question->id]);

        $this->assertInstanceOf('Illuminate\Database\Eloquent\Relations\HasMany', $question->answers());
    }
}

答案就在注释的部分了. 找了好久. 哎. 感觉被坑了.

3年前 评论
讨论数量: 2
qiuyuhome
<?php

namespace Tests\Unit;

use App\Models\Answer;
use App\Models\Question;
// 使用 `php artisan make:test QuestionTest --unit` 命令生成后, TestCase 默认使用的是下面的命名空间. 需要改成 `use Tests\TestCase;`
// use PHPUnit\Framework\TestCase;
use Tests\TestCase;
use Illuminate\Foundation\Testing\RefreshDatabase;

class QuestionTest extends TestCase
{
    use RefreshDatabase;

    /**
     * @test
     */
    public function a_question_has_many_answers()
    {
        $question = factory(Question::class)->create();

        factory(Answer::class)->create(['question_id' => $question->id]);

        $this->assertInstanceOf('Illuminate\Database\Eloquent\Relations\HasMany', $question->answers());
    }
}

答案就在注释的部分了. 找了好久. 哎. 感觉被坑了.

3年前 评论
洛未必达

已加注释,进行说明

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!