Php Unit Testing не охватывает все атрибуты метки модели Yii2 - PullRequest
0 голосов
/ 24 апреля 2018

Я пишу тестовый код для Yii2, когда я тестирую с помощью phpunit.Тогда проверка покрытия кода не полностью покрывает метод меток атрибутов.Это охватывает только первую строку этого.Это код моей модели тестирования, приведенный ниже.

public function testattributeLabels()
{
    $attribute = Academicrecords::attributeLabels();
    print_r($attribute);

    $this->assertInternalType('array',$attribute);
    $this->assertContains('Student Name',$attribute);

    $this->assertEquals('Student Name',$attribute['student_id']);
    $this->assertEquals('ID',$attribute['id']);
    $this->assertEquals('School Name',$attribute['school_name']);
    $this->assertEquals('Class',$attribute['class']);
    $this->assertEquals('Stream',$attribute['stream']);

    $this->assertEquals('Created On',$attribute['created_on']);
    $this->assertEquals('Modified On',$attribute['modified_on']);
    $this->assertEquals('Created By',$attribute['created_by']);
    $this->assertEquals('Modified By',$attribute['modified_by']);
}

Это код моей модели

public function attributeLabels()
{
    return [
        'id' => 'ID',
        'student_id' => 'Student Name',
        'school_name' => 'School Name',
        'class' => 'Class',
        'stream' => 'Stream',
        'created_by' => 'Created By',
        'created_on' => 'Created On',
        'modified_by' => 'Modified By',
        'modified_on' => 'Modified On',
    ];
}

Это мой результат кодового восприятия Это мой код результата кодового восприятия

1 Ответ

0 голосов
/ 24 апреля 2018

Поскольку attributeLabels () не является статической функцией, вы можете попробовать это.Не уверен, что это решит вашу проблему.

public function testattributeLabels() {
    $model = new Academicrecords();

    $this->assertEquals('Student Name',$model->getAttributeLabel('student_id'));
    $this->assertEquals('ID',$model->getAttributeLabel('id'));
    $this->assertEquals('School Name',$model->getAttributeLabel('school_name'));
    $this->assertEquals('Class',$model->getAttributeLabel('class'));
    $this->assertEquals('Stream',$model->getAttributeLabel('stream'));

    $this->assertEquals('Created On',$model->getAttributeLabel('created_on'));
    $this->assertEquals('Modified On',$model->getAttributeLabel('modified_on'));
    $this->assertEquals('Created By',$model->getAttributeLabel('created_by'));
    $this->assertEquals('Modified By',$model->getAttributeLabel('modified_by')); 
}
...