gpt4 book ai didi

unit-testing - 中等复杂度方法的 TDD

转载 作者:行者123 更新时间:2023-12-04 04:41:32 24 4
gpt4 key购买 nike

我已经有一段时间没有接触 TDD 了,而且很生疏。我很感激关于如何使用下面描述的方法进行 TDD 的一些建议。

该方法必须在用户提供的应用程序目录中找到一个 web.config 文件。然后它必须从该配置文件中提取并返回一个连接字符串。

如果由于任何原因找不到连接字符串,它返回 null,无论是路径错误、没有 web.config 还是 web.config 中没有连接字符串。

我最初的想法是编写一个带有安装程序的测试,该测试创建一个目录并编写一个带有连接字符串的 web.config 文件。然后测试将使用创建的路径调用我的方法并期望返回一个非空值,并且我的初始测试运行将失败,因为我的方法 stub 总是返回空值。

然后,实现该方法,并运行测试并期望通过。然后,作为预测试(我忘记了这个术语),删除创建的目录,并调用期望 null 值的方法。

最佳答案

首先,我不会让该方法同时查找文件和提取连接字符串。如果您的框架还没有确定文件是否存在于给定目录中的方法,请编写一个方法来执行,一旦您有了一个文件,就编写一个方法来从打开的流中提取连接字符串。然后,为了进行测试,您可以提供内存流,而不必实际创建目录和文件。

其次,如果您不依赖于失败的编译是您的第一次失败测试,​​那么编写您对该方法的第一次尝试以抛出 NotImplementedException。这是一小步,但当您编写第一个测试时,至少它会失败。当然,对空流的第一个测试将期望它返回 null,而您编写的第一段代码将是 return null,但这没关系。你的下一个测试将迫使你改变它。从那里继续,直到您获得完整的方法。

关于unit-testing - 中等复杂度方法的 TDD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/625925/

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