拼写错误的自动测试

时间:2016-08-06 20:37:29

标签: javascript regex unit-testing

简介

我有一个数据集,比如数组,字符串,如下所示:

data = [
    'Lorem ipsum {{keyword}} sit amet',
    'Consectetur adipiscing {{different}} elit',
    'Pellentesque vel {{another}}^option^ placerat nibh {{yetAnother}}',
    ...
]

我的应用程序使用这些字符串,并根据情况用其他内容替换关键字{{...}}。

我有Mocha测试来检查关键字是否正确,测试会根据字典检查它们'。 这是在简单的RegExp的帮助下完成的。容易。

问题

现在,我有问题,我不知道如何处理它:我想测试是否没有这样的拼写错误: {{keyword}{keyword}}{{kyword^option^或任何其他组合......在这种情况下,我的RegExp无能为力。

什么是最有效和易于维护的方法(定义关键字的边界可能会在未来发生变化,或者我可能需要添加一些选项)?

更多信息

这种测试的原因是,如果错误发生在"声明" (例如缺少大括号)应用程序不会将其识别为占位符并且不会采取行动。它不会失败或记录错误,它只会将其视为普通文本,因此及早发现它是非常重要的。

由于此数据是应用程序的重要组成部分,并且是手动生成的,并且有数百个,因此可能(并且将会)发生拼写错误,因此测试它是有意义的。

到目前为止......

  • 我尝试使用RegExp来捕获此失败的
  • 合理有效且易于实施的解决方案:检查{{等于数量}}的数量,并检查{{或}}两侧是否没有空格

1 个答案:

答案 0 :(得分:0)

这个问题的一部分可以通过修复不匹配的大括号来解决。我最初写这个正则表达式是对类似问题的回答:

[\{]+([^}]+)[}]+

您只需将匹配替换为{{$1}}

只要在比赛中连续出现{}中的一个或多个,就会有效。

我建议在问题的其余部分(涉及字典)中使用除正则表达式之外的其他内容。即使是执行该类任务的基本正则表达也不值得,因为相同数量的功能对于常规字符串操作更容易。