Sql 如何在我的ASP.NET MVC项目中测试附加数据库的模型?

Sql 如何在我的ASP.NET MVC项目中测试附加数据库的模型?,sql,asp.net-mvc,linq-to-sql,tdd,Sql,Asp.net Mvc,Linq To Sql,Tdd,我创建了一个标准的ASP.NET MVC项目,然后在App_数据文件夹中添加了一个SQL Express数据库。连接字符串被记录到web.config文件中。然后,我为数据库创建了一个LINQ到SQL的数据模型。我想从我的测试项目中测试数据模型,但我不知道如何正确进行,因为我使用的是附加数据库。由于数据库连接到MVC项目,而不是测试项目,我如何从测试项目访问它?如果您谈论的是单元测试,那么它们应该能够在没有数据库的情况下运行。其思想是将代码分成可重用的块,这些块可以通过传入模拟/存根数据进行单独

我创建了一个标准的ASP.NET MVC项目,然后在App_数据文件夹中添加了一个SQL Express数据库。连接字符串被记录到web.config文件中。然后,我为数据库创建了一个LINQ到SQL的数据模型。我想从我的测试项目中测试数据模型,但我不知道如何正确进行,因为我使用的是附加数据库。由于数据库连接到MVC项目,而不是测试项目,我如何从测试项目访问它?

如果您谈论的是单元测试,那么它们应该能够在没有数据库的情况下运行。其思想是将代码分成可重用的块,这些块可以通过传入模拟/存根数据进行单独测试。

Sohnee是正确的;单元测试不应该依赖于生产数据库。听起来你想做一些更广泛的集成测试,也许吧


我可以详细介绍一下,但我认为这不是你想要的。你能详细说明一下通过测试数据模型你的意思或目的吗?

一些思想流派对什么应该进入单元测试而不是单元测试非常严格。其他人则不然

我想这都是关于偏好的。记住,当你把所有的东西都模仿出来的时候,很容易忘记测试真实的东西

但是为了回答您的问题,如果您只是在测试中创建数据上下文,会发生什么?你能对它进行查询吗,或者你会遇到奇怪的连接异常


如果是后一种情况,并且您仍然希望针对您的数据库进行测试,那么我猜您必须将数据库文件复制到您的测试可以到达的地方。无论如何,您可以将连接字符串传递给数据上下文构造函数。

Thx以获取您的快速答案!但这是否意味着单元测试不应该用于使用实时数据测试ur数据模型?我认为如果我使用实时数据而不是伪造数据,这将是一个更准确的测试。哈哈,也许我不明白单元测试的目的。但我仍然希望有人曾经这样做过,并让我知道这是否可以做到。