gpt4 book ai didi

c# - 为查询数据库的方法编写单元测试

转载 作者:可可西里 更新时间:2023-11-01 08:18:28 26 4
gpt4 key购买 nike

我正在学习 TDD,我目前有一个有效的方法,但我认为我可以尝试使用 TDD 重建它。

该方法基本上采用 6 个参数,查询数据库,执行一些逻辑并返回 List<T>

我的初始测试包括检查空/零定义的字符串和 int 方法参数值,但现在我不确定该怎么做。如果我不使用 TDD,我只会创建代码来查找数据库连接字符串并打开数据库连接、查询数据库、读取值等。

显然我们不能在单元测试中做到这一点,所以我在寻求如何进行的一些建议。

最佳答案

请记住,TDD 不仅关乎测试,还关乎良好的设计。这种方法太多了;它违反了关注点分离原则。

您已经确定了几个需要测试的区域:

The method essentially takes 6 parameters, queries a database, does some logic and returns a List<T>

那里有几个不连续的步骤,代码中可能还隐藏着更多步骤。打破这些是 TDD 的游戏名称。

对于初学者来说,分解出执行逻辑的部分可能是个好主意。

您的方法是否动态构建查询?也将那部分分解并对其进行测试以确保正确编写了查询。

您可以将查询的执行放入独立的存储库或类似的东西中,并针对它编写集成测试。这样您就只有一个简单的测试访问数据库而不是当前的复杂方法。

如果您尝试按原样进行测试,您很可能会得到一个需要大量设置并重复所有业务逻辑的怪物测试,当它中断时,您将不清楚哪里出了问题.

关于c# - 为查询数据库的方法编写单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9002688/

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