以下是我原始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中传递。有什么办法我能做到这一点吗?
您正在寻找assertInternalType()
。
更新:我没有意识到你在回显输出。您可能需要使用输出缓冲来捕获文本。
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);
}
不同意贝勒的回答。为了回答这个问题,正如所问的,你所拥有的也足够好:
$this->assertTrue(is_string($output));
或者你可以这样做:
$this->assertEquals('string',gettype($output));
(后者的优点是,当它失败时,它还会告诉你$output
的类型;assertTrue
只会告诉你某个东西失败了。)
assertInternalType()
正是这样做的,但它只是在PHPUnit 3.5中引入的,您仍然会发现PHPUnit 3.4在一些机器上使用。