I created a widget in Yii to display graphics using the http://www.highcharts.com/ library. My widget works pretty similar as CGridView
widget from Yii.
I know that for visual elements I could have a functional test using Selenium, that I'm going to have. But, because the caracteristics of my widget (display a javascript result), I cannot find much problems on the visual elements.
How I can write a unit test to make sure the necessaries elements is displayed or loaded? I will give some examples below (using CGridView
as example).
The oficial unit test for CGridView
can be found here: https://github.com/yiisoft/yii/blob/master/tests/framework/zii/widgets/CGridViewTest.php
As you can see there, the test only make sure the scripts is registered, but, how about the logic behind? For example, this simple code:
public function renderTableBody()
{
$data=$this->dataProvider->getData();
$n=count($data);
echo "<tbody>
";
echo '<tr><td colspan="'.count($this->columns).'" class="empty">';
$this->renderEmptyText();
echo "</td></tr>
";
echo "</tbody>
";
}
There is no tests for that, is there some logical reason? How I can write a test for that? Maybe with ob_start
and ob_end_clean
?