在代码功能测试中,seeInDatabase不适用于laravel

时间:2016-01-17 11:36:41

标签: laravel laravel-5 codeception laravel-5.2

我正在codeception使用laravel 5.2进行测试 这是我的codeception.yml文件:

actor: Tester
paths:
    tests: tests_codecept
    log: tests_codecept/_output
    data: tests_codecept/_data
    support: tests_codecept/_support
    envs: tests_codecept/_envs
settings:
    bootstrap: _bootstrap.php
    colors: false
    memory_limit: 1024M
extensions:
    enabled:
        - Codeception\Extension\RunFailed
modules:
    config:
        Db:
            dsn: 'mysql:host=localhost;dbname=kartice_test'
            user: '*******'
            password: '*******'
            dump: tests_codecept/_data/dump.sql
            populate: true
            cleanup: true
            reconnect: true

这里是functional.suite.yml文件:

class_name: FunctionalTester
modules:
    enabled:
        # add framework module here
        - \Helper\Functional
        - Asserts
        - Laravel5:
            environment_file: .env.testing
        - Db

这是我的test method

public function provera_dodavanja_novog_klijenta(FunctionalTester $I)
{

    $this->authenticate($I);

    $I->amOnPage('/kancelarija/komitenti/create');
    $I->see('Kreiranje novog komitenta');
    $I->fillField('input[name=komitent_code]', 'kom1');
    $I->fillField('input[name=komitent_name]', 'Komitent 1');
    $I->click('btnSave');
    $I->seeInDatabase('komitenti', ['code' => 'kom1', 'name' => 'Komitent 1']);
    $I->see('Komitent Komitent 1 je uspešno kreiran.');

}

运行功能测试失败,显示消息:

 Step  I see in database "komitenti",{"code":"kom1","name":"Komitent 1"}
 Fail  No matching records found for criteria {"code":"kom1","name":"Komitent 1"} in table komitenti
Failed asserting that 0 is greater than 0.

我做错了什么?

我见过问题Codeception seeInDatabase() doesn't work for me,但这并没有帮助我。

2 个答案:

答案 0 :(得分:3)

您应该使用seeRecord方法而不是seeInDatabase。我不知道为什么,但对我来说,第一个是工作,第二个是 - 不是。

答案 1 :(得分:0)

我使用gulp tdd,当测试表单遇到此错误时。 请检查:

  1. 您已将此添加到“请求”

    <YourFormRequest>use App\Http\Requests\<YourFormRequest>;

  2. 确保您的表的模型是可批量分配的

    protected $fillable = ['tableField1', 'tableField2']