代码覆盖率和正则表达式(dotCover)

时间:2016-02-24 15:52:15

标签: regex unit-testing nunit code-coverage dotcover

我正在使用dotCover来检查我的代码覆盖率。 在一行中,我使用正则表达式来检查给定的字符串是否有效。

if (!Regex.IsMatch(value, @"[a-zA-Z\-]"))
    throw new NullReferenceException("value");

我创建了一个单元测试,用于检查我的代码是否按预期工作。

但是dotCover不会识别我的代码。当然,因为我没有 用每个可能的(不匹配的)角色测试它。

这个问题的解决方案是什么?

1 个答案:

答案 0 :(得分:0)

如果要检查字符串是否包含不是ascii字母或连字符的字符,可以使用以下模式之一:

带有否定的字符类(搜索字符):

if (Regex.IsMatch(value, @"[^a-zA-Z-]"))

没有(描述所有字符串):

if (!Regex.IsMatch(value, @"^[a-zA-Z-]*$"))

如果你想防止空字符串:

if (Regex.IsMatch(value, @"[^a-zA-Z-]|^$"))

if (!Regex.IsMatch(value, @"^[a-zA-Z-]+$"))