簡體   English   中英

UnitTest是一個以DbContext為參數的函數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM