gpt4 book ai didi

c# - 测试和异常,模拟

转载 作者:行者123 更新时间:2023-11-28 21:11:56 25 4
gpt4 key购买 nike

假设我想测试一些从存储服务器下载文件的代码在下载错误的情况下是否遵循特定的操作过程(例如,服务器已关闭或凭据无效)。

我看到两种测试方法:

选择 #1:使用明显错误的凭据初始化一个真实的下载服务器对象;当某事试图用 conn 做某事时,它会触发异常;

FileServerConnection conn = new FileServerConnection("Invalid User", "Invalid Password");

选择 #2:模拟 FileServerConnection 类并指示模拟在构造 FileServerConnection 对象时抛出异常;

我知道选择#2 优于选择#1,但我不明白为什么..有人可以解释为什么#2 比#1 好。此时(周五下午)我看到#1 的唯一问题是它的测试要慢得多(尽管慢了一两秒)。

干杯!

P.S 选择 #1 的一个优点是它可以编写更少的代码行:-)

最佳答案

问题是选择 #1 依赖于另一个系统,而您通常希望单元测试独立于此类系统。

您在选项 #2 中的测试是测试您的代码如何使用错误的凭证(您想要的),但选项 #1 也会导致测试下载服务器如何处理不正确的凭证(这与您想要的无关)在这里测试)。这会使您的测试更加复杂,并且会出现更多错误。

关于c# - 测试和异常,模拟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22106685/

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