2

我希望测试一个将生成lorem ipsum文本的函数,但它是在 html 标记中执行的。所以我不能提前知道文本内容,但我知道 html 结构。这就是我想要测试的。也许文本的长度在一定的范围内。所以我想知道的是 assertTags 是否可以通过以下方式解释:

Result = "<p>Some text</p>";
Expected = array( 
   '<p' ,
   'regex',
   '/p'
);
assertTags(resutl, expected)

我正在将 SimpleTest 与 CakePHP 一起使用,但我认为这应该是一个普遍的问题。

4

2 回答 2

2
$expected = array(
    '<p',
    'preg:/[A-Za-z\.\s\,]+/',
    '/p'
);
于 2008-09-25T10:21:51.283 回答
0

扩展 SimpleExpectation 类,然后在断言语句中使用新的 Expectation 类

见:http ://www.lastcraft.com/expectation_documentation.php#extending

给出的示例用于验证 IP 地址,但应该适用于您的问题:

class ValidIp extends SimpleExpectation {

  function test($ip) {
    return (ip2long($ip) != -1);
  }

  function testMessage($ip) {
    return "Address [$ip] should be a valid IP address";
  }
}

然后在你的测试中

$this->assert(new ValidIp(),$server->getIp());
于 2008-09-25T09:58:38.750 回答