UnitTest是一个以DbContext为参数的函数

时间:2016-11-17 11:00:55

标签: c# entity-framework unit-testing nunit dbcontext

嘿,我试着测试这个功能。

修改

目标是编写一个测试,检查验证功能是否正常。

我刚开始进行单元测试。

我已经尝试过嘲笑上下文,但这不是解决方案。

它没有用,或者我做错了。 (连接字符串错误)

此问题的正确方法是什么?

你有什么想法吗?

感谢您的帮助。

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 "";
        }

1 个答案:

答案 0 :(得分:0)

能够在验证内部对逻辑进行单元测试的最简单的解决方案可能是:

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 "";
        }

然后你不必模拟任何东西,你可以从测试中发送手工制作的验证错误列表