在 yii 中为小部件创建测试

Edu*_*o M 5 php phpunit unit-testing yii 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";
}
Run Code Online (Sandbox Code Playgroud)

没有对此进行测试,有什么逻辑原因吗?我如何为此编写测试?也许与ob_startob_end_clean

Ale*_*yko 0

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