【问题标题】:How to test Model of attached DB in my ASP.NET MVC project?如何在我的 ASP.NET MVC 项目中测试附加数据库的模型?
【发布时间】:2010-11-07 05:57:23
【问题描述】:

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

【问题讨论】:

    标签: sql asp.net-mvc linq-to-sql tdd


    【解决方案1】:

    如果您在谈论单元测试,它们应该能够在没有数据库的情况下运行。这个想法是你的代码被分解成可重用的块,可以通过传入模拟/存根数据来单独测试。

    【讨论】:

    • 感谢您的快速回答!但这是否意味着不应使用单元测试来使用实时数据测试您的数据模型?我认为如果我使用实时数据而不是捏造数据,这将是一个更准确的测试。大声笑也许我不明白单元测试的目的。但我仍然希望有人以前这样做过,如果可以做到,请告诉我。
    【解决方案2】:

    Sohnee 是正确的;单元测试不应依赖于您的生产数据库。听起来您可能希望进行一些更广泛的集成测试?

    我可以对此进行详细介绍,但我认为这不是您想要的。您能否详细说明您通过“测试数据模型”的意思或目标是什么?

    【讨论】:

      【解决方案3】:

      一些思想流派对单元测试应该包含哪些内容非常严格。其他的没那么多。

      我认为这完全取决于偏好。请记住,当您模拟所有内容时,很容易忘记测试真实的东西。

      但要回答您的问题,如果您只是在测试中创建数据上下文会发生什么?您可以对其进行查询,还是会遇到奇怪的连接异常?

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-02-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多