我有一些过滤器正在编写自动化工具,每当我认为有解决方案时,都会被证明是错误的。它会通过,但随后我将值更改为超出范围,并且仍然通过。
这就是我想要做的。我在过滤器上有3种情况:
$10 or Less
$15-$30
$30+
我有一个以十进制表示的价格结果列表。现在,我只想声明所有三个结果。这是我尝试过的。我包括了所有这些,但是我的问题一直是>>等于一个值但>大于另一个值的范围。我想念什么?
Seems to be working:
case "10 or less":
List<decimal> listDefault = price.Select(s => decimal.Parse(s)).ToList();
Assert.IsTrue(listDefault.Where(x => x < 10).Any());
break;
This does not appear to be working:
case "11-30":
List<decimal> listDefaultRange = price.Select(s => decimal.Parse(s)).ToList();
Assert.IsTrue(listDefaultRange.Any(a => 11 < 30));
break;
Seems to be working:
case "30+":
List<decimal> listDefaultMax = price.Select(s => decimal.Parse(s)).ToList();
Assert.IsTrue(listDefaultMax.Where(x => x > 30).Any());
break;
答案 0 :(得分:2)
应该是:
Assert.IsTrue(listDefaultRange.Any(x => x > 10 && x <= 30));
执行.Any(a => 11 < 30)
时,仅检查11 < 30
是否忽略所有输入值,这将始终返回true(如果序列包含任何元素)。