我在我的項目中使用Linq to SQL。我有一個調用單元測試時DataContext崩潰
DataContext db = new DataContext()
代碼的一部分,該工程運行網站時,卻離我的單元測試中調用這個當如預期我得到一個錯誤對象未設置爲一個實例...
你知道這是爲什麼嗎?
我知道我應該模擬數據上下文進行測試,但只有兩個測試使用了我需要在項目的這個階段完成的測試。然後我會進去模擬。
我只是不明白爲什麼它不起作用。
編輯:
在我控制我行
CandidateRegistrationViewModel viewModel = new CandidateRegistrationViewModel("PersonalDetails", candidate);
模型有一個成員DB:
public class CandidateRegistrationViewModel
{
private EmployDirectDataContext db = new EmployDirectDataContext();
該類然後用分貝來填充選擇框。
它運行時,我運行,但在單元測試我創建datacontext時出現錯誤。
[TestMethod]
public void PersonalDetailsStepPostShouldRedisplayIfDOBSuppliedInWrongFormat()
{
// Arange
var controller = CreateCandidateController("Dean");
repository.Add(FakeCandidateData.CreateCandidate(controller.member.UserId()));
FormCollection formCollection = FakeCandidateData.CreatePersonalDetailsStepFormCollection();
formCollection["DOB"] = "24/2009/87"; //DOB in wrong format - should be dd/mm/yyyy
controller.ValueProvider = formCollection.ToValueProvider();
// Act
ViewResult result = (ViewResult)controller.PersonalDetailsStep(formCollection);
// Assert
Assert.AreEqual("", result.ViewName); //ViewName is returned as empty if same as Action name
}
的項目都具有相同的連接字符串中的應用程序/ web.config中
<add name="EmployDirectDBConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\EmployedDirectDB.MDF;Integrated Security=True;User Instance=True"
providerName="System.Data.SqlClient" />
代碼是什麼樣的? – 2009-07-17 23:41:22
我已經添加所有相關代碼 – ddd 2009-07-18 10:19:50