gpt4 book ai didi

c# - 如何在不实际执行查询的情况下测试查询数据库的方法?

转载 作者:搜寻专家 更新时间:2023-10-30 21:50:29 26 4
gpt4 key购买 nike

我正在尝试编写一个单元测试,该测试将对从方法返回的字符串执行检查。该字符串是实体的一部分,应通过调用数据库生成。我可以轻松地 stub 这样的实体,但我不知道如何省略对数据库的调用,因为它是方法的一部分。

方法如下所示:

private string GetDescriptionForRelationEntry(string relAttrId, string client)
{
// here we are querying the database
var relationEntities = new EntityDatabaseQuery<AttributeEntryEntity>();

// the rest of the method
}

指定为方法的其余部分的部分需要执行,因为我必须获取字符串结果才能执行必要的检查。所以,基本上,我只需要“伪造”一行代码。

现在我无法说明允许对 SUT 类进行多大程度的修改,因此我不会将此问题限制为任何特定的解决方案。任何帮助将不胜感激。

最佳答案

通常可测试类是某个接口(interface)的实现或某个抽象类的派生类。

因此,您可以使用反转控制容器框架,例如 CaSTLe Windsor、Ninject 或您可能更喜欢的任何框架,并提供整个接口(interface)的实现这不会访问数据库,但会返回测试查询结果。

关于c# - 如何在不实际执行查询的情况下测试查询数据库的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26095050/

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