当前位置: 首页 > 知识库问答 >
问题:

测试数据库调用C#

湛宏旷
2023-03-14
public bool Save(SomeObjectDTO someObject)

共有1个答案

闽高峯
2023-03-14

您正在寻找的是所谓的集成测试,它和编写单元测试一样重要。您的底层数据提供程序暴露了许多潜在的bug,但嘲弄存储库并不一定会发现这些bug(无效的外键、标记为not null的数据为null等)。

我认为同样重要的是,您要针对与生产系统相同的数据库提供程序进行测试,否则会有丢失特定于实现的行为的风险。我在一个项目中使用Azure SQL,而不是创建内存中的SQL CE实例,而是在Azure上有一个单独的数据库,只用于集成测试。

如果您使用XUnit(我相信它也适用于其他测试框架),那么就会有一个方便的属性[AutoRollback],它将在每次测试运行后自动回滚您的事务。

[Fact]
[AutoRollback]
public void AddProductTest_AddsProductAndRetrievesItFromTheDatabase()
{
    // connect to your test db
    YourDbContext dbContext = new YourDbContext("TestConnectionString")

    dbContext.Products.Add(new Product(...));

    // get the recently added product (or whatever your query is)
    var result = dbContext.Single();

    // assert everything saved correctly
    Assert.Equals(...);
}
 类似资料:
  • 简介 Laravel提供了各种有用的工具,以便更容易地测试数据库驱动的应用程序。 首先, 你可以使用 assertDatabaseHas 辅助函数, 来断言数据库中是否存在与指定条件互相匹配的数据。 例如,如果我们想验证 users 数据表中是否存在 email 值为 sally@example.com的数据, 你可以安装以下方式来测试: public function testDatabase(

  • 问题内容: 我希望在编写用于测试某些数据库条目的单元测试中获得一些建议。 如果找不到记录,则我正在测试的功能会将数据库作为种子。 我似乎不太了解如何进行len测试。我正在使用测试数据库,因此我可以在任何时候都对其进行核对,因此,如果我只需要在函数上强制使用一个空的数据库,就没有问题了。 该函数本身可以正常工作,我只想确保已覆盖该函数。 任何建议都很好。 谢谢! 问题答案: 确实取决于您,有很多方法

  • 主要内容:创建JMeter测试计划,添加JDBC请求,保存并执行测试计划,验证输出在本节中,将学习如何创建测试数据库服务器的基本测试计划。 为了我们的测试目的,这里将创建一个数据库。 可以根据自己的方便使用任何其他数据库服务器。还可以参考我们的MySQL数据库教程:https://www.xnip.cn/mysql 来了解有关数据库创建的更多信息。 在系统上安装数据库服务器之后。 按着这些次序: 创建名为testdb的数据库。 创建表 - 。 将记录插入到表中。 下图显示了创建

  • 在各种编程语言中,许多入门与中级的单元测试范例都暗示着这样一种信息:很容易用简单的测试来对应用程序的逻辑进行测试。但是对于以数据库为中心的应用程序而言,这与现实相去甚远。一旦开始使用诸如 Wordpress、TYPO3、或 Symfony(配合 Doctrine 或 Propel)之类的东西,就很容易在用 PHPUnit 时碰到超多问题:正是由于这些库和数据库之间实在耦合的太紧密了。 注意 请确保

  • 我在测试方面有问题。这是我第一次写测试,我遇到了一个问题。 我刚刚在我的应用程序中创建了一个测试文件夹,并且用于测试URL。 当我键入: 它说: 创建别名默认的测试数据库...创建测试数据库时出错:数据库"database_name"已经存在 如果要尝试删除测试数据库“database_name”,请键入“yes”,或键入“no”取消: 这是什么意思?如果我输入yes会发生什么?我是否丢失了数据库

  • 我正在尝试使用Jeter针对SQLServer 2008 R2数据库设置基本负载测试。但是,当仅使用一个用户运行测试时,我收到错误。 响应消息:com。微软sqlserver。jdbc。SQLServerException:用户XXX登录失败。ClientConnectionId:。 这是我的JDBC连接配置数据库URL: jdbc: sqlserver://Serverame: 1433; Da