这是我原始PHP代码的代码:
public function outputText() {
$i = 1;
foreach($this->sorted_data as $this->data) {
echo "$i. ".$this->data[0]."<br/>";
$i++;
}
}
这是PHPUnit的代码:
public function testVerify() {
$yn = new SortThisData();
$yn->readFile("input.txt");
$output = $yn->outputText();
$this->assertTrue(is_string($output));
//if(!is_string($yn->get()))
// return false;
//$this->assertNotEmpty($yn->get());
}
该类在原始PHP文件中称为SortThisData。 当我使用gettype()时,它说它是null。我正在尝试验证它是一个字符串,以便它可以传入PHPUnit。有没有办法可以做到这一点?
答案 0 :(得分:3)
您正在寻找assertInternalType()
。
更新:我没有意识到你正在回应输出。您可能需要使用output buffering来捕获文本。
public function testVerify() {
$yn = new SortThisData();
$yn->readFile("input.txt");
// start output buffering and capture the output
ob_start();
$yn->outputText();
$output = ob_get_clean();
$this->assertInternalType('string', $output);
}
答案 1 :(得分:1)
对贝勒的回答没有异议。要回答这个问题,就像被问到的那样,你所拥有的东西也足够好了:
$this->assertTrue(is_string($output));
或者你可以做到:
$this->assertEquals('string',gettype($output));
(后者的优点是,当它失败时,它也会告诉你$output
的类型; assertTrue
只会告诉你某些事情失败了。)
assertInternalType()
正是如此,但仅在PHPUnit 3.5中引入,您仍会在某些机器上使用PHPUnit 3.4。