【发布时间】:2019-01-06 09:04:07
【问题描述】:
如何在 C# 中为表达式树编写单元测试。
我有这个需要测试的课程。此方法返回一个表达式树,并获取一个作为参数。
代码:
public ExpressionStarter<SpecFinderDataModel> DoSearch(bool status, string searchValue, ExpressionStarter<SpecFinderDataModel> predicate)
{
var localPredicate = predicate;
if (status == false)
{
var searchTerms = searchValue.Split(' ').ToList().ConvertAll(x => x.ToLower());
localPredicate = localPredicate.Or(s => searchTerms.Any(srch => s.ProductID.ToLower().Contains(srch)));
localPredicate = localPredicate.Or(s => searchTerms.Any(srch => s.ISBN13.ToLower().Contains(srch)));
localPredicate = localPredicate.Or(s => searchTerms.Any(srch => s.Title.ToLower().Contains(srch)));
}
return localPredicate;
}
任何建议都会有所帮助。谢谢。
更新 #1 我已将 LinqKit 用于 ExpressionStarter
【问题讨论】:
-
编译结果表达式为
Func,并用相关输入验证结果 -
问题是我已经为基本概念编写了单元测试,但没有为使用表达式等高级概念编写单元测试。我不知道。你能指点我在哪里看吗?
标签: c# expression mstest xunit linqkit