コントローラー内にこのコード行があり、codeigniter フレームワークを使用して記述されています。
public function search($bookmarkIndex=0)
{
$searchString = trim($this->input->post("searchString"));
$searchType = trim($this->input->post("searchType"));
$search = array(
'searchString'=>$searchString,
'type'=>$searchType);
// DOING SEARCH HERE...
}
ご覧のとおり、メソッドは CodeIgniter の $this->input->post を使用しています。これは単体テストが難しいことがわかりました。PHPUnit を使用してテストする必要がある場合、どのように値を設定すればよいですか? または、これを嘲笑する方法はありますか?以下は私の現在の単体テスト方法です。
// inside PHPUNIT TEST FOLDER
public function test_search()
{
// I know this is not the way to set "post", below is just my
// expectation if I were able to set it.
$this->CI->input->post("searchString",'a');
$this->CI->input->post("searchType",'contact');
$searchString = $this->CI->input->post("searchString");
echo $searchString; //always false.
$this->CI->search();
$out = output();
// DO ASSERT HERE...
}