如何使用正则表达式在SimpleTest中编写AssertTags测试?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用正则表达式在SimpleTest中编写AssertTags测试?相关的知识,希望对你有一定的参考价值。

我希望测试一个生成lorem ipsum文本的函数,但它在html标签中这样做。所以我不能事先知道文本内容,但我知道html结构。这就是我想要测试的。也许文本的长度在一定限度内。所以我想知道的是,断言标签是否可以用下面的方式解释:

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

我在Cakephp中使用SimpleTest,但我认为它应该是一个普遍的问题。

答案
$expected = array(
    '<p',
    'preg:/[A-Za-z.s,]+/',
    '/p'
);
另一答案

扩展SimpleExpectation类,然后在assert语句中使用新的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());

以上是关于如何使用正则表达式在SimpleTest中编写AssertTags测试?的主要内容,如果未能解决你的问题,请参考以下文章

使用正则表达式提取文件路径并将其保存在python中

打字稿:如何在 2 行中编写长正则表达式 [重复]

如何在 MySQL 选择查询中编写正则表达式?

如何在标题案例中编写正则表达式

如何编写正则表达式来查找/替换 HTML 类? [复制]

如何在 VBScript 中使用正则表达式替换部分子字符串?