【问题标题】:KO Assertions in testing CRUD, from Phpunit with Yii测试 CRUD 中的 KO 断言,来自 Phpunit 和 Yii
【发布时间】:2013-02-02 04:59:13
【问题描述】:

我正在关注手册“使用 Yii1.1 和 PHP5 开发敏捷 Web 应用程序”,但我不知道为什么测试 CRUD 失败了,

在正确测试“数据库连接”(第 4 章)后,它是从 Gii 正确创建的“实体 AR 类”,但在创建 testCRUD 时,输出返回是一个错误的断言,如下所示:

OK(1 个测试,0 个断言)

我在手册中没有遵循一个步骤,即创建 CDbConnection 类,因为 testsConnection 没问题。此外,我检查了所有更改类 Test 和 main.php 文件,一切正常。

EntityTest.php

class EntityTest extends CDbTestCase
{   
    public function testCRUD()
    {
    }
}

Entity.php

    public function testCRUD()
    {
    $newEntity=new Entity;
    $newEntity->setAttributes(
        array(
                'name' => 'Test Entity 1',
                'description' => 'Test entity number one',
                'type_id' => 1,
                'location_lat' => 77,
                'location_lon' => 77,
                'create_time' => '2013-02-16 20:36:00',
                'create_user_id' => 1,
                'update_time' => '0000-00-00 00:00:00',
                'update_user_id' => 0,
            )
    );
    $this->assertTrue($newEntity->save(false));

    $retrievedEntity=Entity::model()->findByPk(1);
    $this->assertTrue($retrievedEntity instanceof Entity);
    $this->assertEquals('Salva la Prospe',$retrievedProject->name);
}           

干杯。

【问题讨论】:

    标签: tdd phpunit yii gii


    【解决方案1】:

    测试在它自己的类中运行方法,它不会在它正在测试的对象中调用测试方法。

    这解释了为什么它说 0 个断言。您的测试只是一个空方法。

    只需将所有 testCRUD 代码从 Entity.php 文件移动到 EntityTest.php 文件,它就可以工作了。

    【讨论】:

    • 谢谢 Renzema,就像你说的那样。不知道,他在想什么?很难相信,但我认为在 Test 类中不可能直接使用处理信息数据的 CRUD 操作。这是一个非常有用的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-17
    • 2012-09-12
    • 2021-04-20
    • 2013-03-14
    • 1970-01-01
    • 2013-09-19
    • 1970-01-01
    相关资源
    最近更新 更多