代码覆盖率和正则表达式 (dotCover)
Code Coverage and Regular Expressions (dotCover)
我正在使用 dotCover 检查我的代码覆盖率。
在一行中,我使用正则表达式来检查给定字符串是否有效。
if (!Regex.IsMatch(value, @"[a-zA-Z\-]"))
throw new NullReferenceException("value");
我创建了一个单元测试来检查我的代码是否按预期工作。
但 dotCover 无法识别我的代码。当然因为我不
用每个可能的(不匹配的)字符测试它。
那个问题的好的解决方案是什么?
如果要检查字符串不包含非 ascii 字母或连字符的字符,可以使用以下模式之一:
带否定字符class(搜索一个字符):
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-]+$"))
我正在使用 dotCover 检查我的代码覆盖率。 在一行中,我使用正则表达式来检查给定字符串是否有效。
if (!Regex.IsMatch(value, @"[a-zA-Z\-]"))
throw new NullReferenceException("value");
我创建了一个单元测试来检查我的代码是否按预期工作。
但 dotCover 无法识别我的代码。当然因为我不 用每个可能的(不匹配的)字符测试它。
那个问题的好的解决方案是什么?
如果要检查字符串不包含非 ascii 字母或连字符的字符,可以使用以下模式之一:
带否定字符class(搜索一个字符):
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-]+$"))