gpt4 book ai didi

unit-testing - 单元测试递归函数

转载 作者:行者123 更新时间:2023-12-02 02:05:45 26 4
gpt4 key购买 nike

使用 Moq 和 native VS 测试框架。我正在尝试测试传入值的递归函数:

public bool AuthenticateByDomain(string domainName, string password, string username, string email)
{

用于查找实体:
// look for an existent domain name.
var matchFound = this.FindDomainPasswordMatch(domainName, password);

如果找到,则查找存在的用户名(该帐户已存在):
        if (matchFound)
{
var account = this.GetByEmail(null, email);
if (account != null)
{

如果未找到,请根据提供的电子邮件和用户名创建帐户:
var uAccount = this.CreateAccount(username, password, email, domainName);

然后递归地调用自己,(大概)调用 GetByEmail()满足并调用验证分支。

我发现了几个 Moq 与存储库交互的示例,但无法确切了解如何解决我的特定问题 - 测试存储库是否更新并且递归成功。我_能够统一获取顶级中找到的每个方法 - 我是否声明足够好并继续前进?这是持久性测试吗?

最佳答案

在轻松测试某些东西时遇到麻烦可能是糟糕的设计决策的一个指标。如果您真的需要这种递归,请让自己清楚。
将这两个调用拆分为 CreateAccount 不是更容易吗?和 FindDomainPasswordMatch并在设计上将它们分开。也许我没有完全理解你的观点,但递归本身似乎没有真正的“递归”用途。它只是一个带有重复代码的“懒惰”调用。我建议你将这些机制与他们自己分开。这也使测试变得更加容易,并且您应该不会在测试这些方法时遇到任何问题。
希望这可以帮助。

关于unit-testing - 单元测试递归函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15156631/

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