[英]UnitTest a function with a DbContext as parameter
嘿,我试着测试这个功能。
编辑:
目标是编写一个测试,检查验证功能是否正常工作。
我刚开始进行单元测试。
我已经尝试过嘲笑上下文,但这不是解决方案。
它没有用,或者我做错了。 (连接字符串错误)
这个问题的正确方法是什么?
你有什么主意吗 ?
谢谢你的帮助。
public static string validate(ProductDBEntities _db)
{
List<string> errorList = new List<string>();
foreach (var error in _db.GetValidationErrors())
{
errorList.Add(error.ValidationErrors.FirstOrDefault().ErrorMessage);
}
if (errorList.Count > 0)
{
string errors = string.Join("\n", errorList);
return errors;
}
return "";
}
能够在验证内部对逻辑进行单元测试的最简单的解决方案可能是:
public static string validate(List<SomeErrorMessageThing> validationErrors) //Whatever type var error is
{
List<string> errorList = new List<string>();
foreach (SomeErrorMessageThing error in validationErrors)
{
errorList.Add(error.ValidationErrors.FirstOrDefault().ErrorMessage);
}
if (errorList.Count > 0)
{
string errors = string.Join("\n", errorList);
return errors;
}
return "";
}
然后你不必模拟任何东西,你可以从测试中发送手工制作的validationErrors列表
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.