我在我的项目中使用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