gpt4 book ai didi

c# - 使用 MBUnit 针对数据库测试值

转载 作者:行者123 更新时间:2023-11-30 15:49:25 25 4
gpt4 key购买 nike

我需要测试一个类,该类的返回值取决于数据库中的值。我可以在单元测试中访问数据库,但这些值可能会改变。对此有标准解决方案吗?

最佳答案

标准答案是重新设计你的类,这样你就可以模拟出依赖关系。这通常是通过将您的数据源作为接口(interface)注入(inject)您的类来完成的。

例如你可能有一个像下面这样的类

class John 
{
public John() { }
public void Load()
{
// call to db in here e.g SQLCommand
}
}

加载依赖于 SQLCommand,因此您总是需要为此调用数据库

如果你注入(inject)一个数据源接口(interface)你有更多的灵 active

例如

class John 
{ IDataSource _db;
public John(IDataSource db)
{
_db = db;
}
public void Load()
{
_db.Load("John"); // IDataSource can now be either SQL
//or hardcoded or what ever much easier to test
}
}

现在,如果您不能/不愿这样做,则必须将此测试视为集成测试。你如何为它设置数据。例如插入您要阅读的行。然后将数据恢复到原始状态。不利的一面是您的测试将缓慢而脆弱。

关于c# - 使用 MBUnit 针对数据库测试值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1627827/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com