powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Как протестировать модели в Yii 2?
2 сообщений из 2, страница 1 из 1
Как протестировать модели в Yii 2?
    #39254125
Коллеги, приветствую.

Собственно, никак не удается разобраться в причинах этой ошибки "[yii\base\InvalidParamException] Table not found: []" . Существует некоторая таблица, не связанная с другими:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
CREATE TABLE [dbo].[tbl_identitydocument](
    [ID] [int] IDENTITY(1,1) NOT NULL,
    [Name] [varchar](100) NOT NULL,
    [FISID] [int] NULL,
 CONSTRAINT [PK_tbl_identitydocument] PRIMARY KEY CLUSTERED 
(
    [ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]



Этой таблице соответствует модель IdentityDocument.php, для которой написан простой Unit- тест. Тест завершается ошибкой:

There was 1 error: [yii\base\InvalidParamException] Table not found: []

Вот простой дымовой тест, который я пытаюсь запустить:

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
<?php
namespace tests\codeception\backend;

use tests\codeception\backend\unit\DbTestCase;
use backend\modules\persons\models\IdentityDocument;

class SmokeTest extends DbTestCase
{
    /**
     * @var IdentityDocument
     */
    protected $identityDocument;

    protected function _before()
    {
        $this->identityDocument = new IdentityDocument();
    }

    protected function _after() { }

    // tests
    public function testMe() { }
} 



Собственно, сама модель:

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
<?php

namespace backend\modules\persons\models;

use Yii;

/**
 * This is the model class for table "{{%identitydocument}}".
 *
 * @property integer $ID
 * @property string $Name
 * @property integer $FISID
 */
class IdentityDocument extends \yii\db\ActiveRecord
{
    /**
     * @inheritdoc
     */
    public static function tableName()
    {
        return '{{%identitydocument}}';
    }

    /**
     * @inheritdoc
     */
    public function rules()
    {
        return [
            [['Name'], 'required'],
            [['Name'], 'string'],
            [['FISID'], 'integer']
        ];
    }

    /**
     * @inheritdoc
     */
    public function attributeLabels()
    {
        return [
            'ID' => Module::t('ML', 'ID'),
            'Name' => Module::t('ML', 'Name'),
            'FISID' => Module::t('ML', 'FISID'),
        ];
    }
}



Для теста использую отдельную базу данных той же структуры, что и промышленная.
...
Рейтинг: 0 / 0
Как протестировать модели в Yii 2?
    #39254349
Решено. Если в Unit- тесте не используются фикстуры, то нужно расширять класс TestCase вместо DbTestCase, иначе загрузчики фикстур будут вызывать ошибки. Если фикстуры используются, то нужно наследоваться от DbTestCase.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Как протестировать модели в Yii 2?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]