在yii中为小部件创建测试

时间:2013-04-24 00:36:33

标签: php unit-testing yii phpunit yii-extensions

我在Yii中创建了一个小部件,使用http://www.highcharts.com/库显示图形。我的小部件与Yii的CGridView小部件非常相似。

我知道对于视觉元素我可以使用Selenium进行功能测试,我将会有。但是,由于我的小部件的特性(显示javascript结果),我在视觉元素上找不到太多问题。

如何编写单元测试以确保显示或加载必需元素?我将在下面给出一些示例(使用CGridView作为示例)。

CGridView的官方单元测试可在此处找到:https://github.com/yiisoft/yii/blob/master/tests/framework/zii/widgets/CGridViewTest.php

正如你在那里看到的那样,测试只确保脚本已经注册,但是,背后的逻辑怎么样?例如,这个简单的代码:

public function renderTableBody()
{
    $data=$this->dataProvider->getData();
    $n=count($data);
    echo "<tbody>\n";
    echo '<tr><td colspan="'.count($this->columns).'" class="empty">';
    $this->renderEmptyText();
    echo "</td></tr>\n";
    echo "</tbody>\n";
}

没有测试,有一些合乎逻辑的原因吗?我怎么能为此编写测试?也许使用ob_startob_end_clean

1 个答案:

答案 0 :(得分:0)

PHPUnit用于服务器端逻辑验证。您无法通过PHP运行JS代码,因此PHPUnit不能用于测试脚本背后的逻辑。如果您想确保您的脚本在客户端正常运行,可以使用QUnit