1

我知道如何设置和执行控制器以对其进行测试。

请参阅框架链接https://bitbucket.org/kenjis/my-ciunit

但是我如何定义给定的测试数据输入?当然我可以自己设置 $_GET 和 $_POST 但是输入库会重新解析这个吗?

我在谷歌找不到答案。我也想知道为什么 Codeigniter 测试的谷歌结果如此糟糕。

<?php

/**
  * @group Controller
  */

class SomeControllerTest extends CIUnit_TestCase
{
public function setUp()
{
    // Set the tested controller
    $this->CI = set_controller('welcome');
}

public function testWelcomeController()
{

    // Call the controllers method
    $this->CI->index();

    // Fetch the buffered output
    $out = output();
            $viewData = viewvars();

    // Check if the content is OK
    $this->assertSame(0, preg_match('/(error|notice)/i', $out));
}

    public function testInput(){

        //reset $_GET and $_POST?

        $this->CI->login();

        //assert valid login etc ...
    }

}

4

1 回答 1

1

是的,您需要在测试设置中或任何最有意义的地方手动设置 $_GET 和 $_POST 值,例如:

public function setUp()
{
    // Set the tested controller
    $this->CI = set_controller('welcome');
    // Set up the input values
    $_GET['parameter_1'] = 'Some String';
    $_GET['parameter_2'] = 123;
}
于 2012-12-11T01:19:15.130 回答