gpt4 book ai didi

c# - 如何创建具有依赖关系的单元测试

转载 作者:行者123 更新时间:2023-11-30 23:04:56 26 4
gpt4 key购买 nike

首先,我想让你明白,我知道在 99.9% 的情况下,不需要带有依赖项的单元测试,但我认为只有 0.1%。

情况是我正在为一个网站开发一个基于 selenium 的自动化测试框架。我有执行不同操作的方法,即。 logIntoSite(usersname, pass), createEvent(eventName, eventTime), deleteEvent(eventName).

这就是该功能显然需要站点正常运行的问题,测试失败可能是我这边的问题,或者它确定了站点问题。当出现站点问题时,它们可能是我们不想运行的一些测试,因为它所依赖的站点的核心功能无法正常工作。

我现在正在处理的示例是,我有一个创建事件的函数,我还有一个删除事件的函数。

如果存在无法创建事件的站点问题,则第一个测试会正确失败,但删除事件功能也会正确失败,即使该功能可能没有任何问题。

这不是让每个测试都 self 维持的问题,因为删除函数不依赖于创建“函数”来运行,删除函数会创建一个事件来删除自身。

所以我留下了 2 个失败,而我想要的是 1 个失败和一个测试因为失败而跳过。就其本身而言,这听起来还不错,但随着测试的增长,我们会越来越多地结束,即。 editEventName、updateEventTime...等。现在我有 4 个失败...我希望你能看到我的问题。

我目前正在使用 Visual Studio 和 TestTools.UnitTesting;

最佳答案

在 Visual Studio 中有一个解决方案。它叫做 Ordered test .您可以通过右键单击测试项目并选择添加 > 有序测试来创建它。

打开的对话框很直观。您可以将测试添加到列表并对其进行排序,并确定该组的测试执行是否应因一次失败而停止。您可以将一项测试添加到多个组。您可以将一组测试添加到另一组。

这将允许您以测试开始一个测试组以验证站点加载,并在失败时停止执行以下测试。您可以测试组的集合,其中即使不同的组失败,每个组也会运行,但在较小的组中,失败会停止执行。因此,如果先决条件测试失败,一项功能的测试可能会停止,但其他功能的测试会继续。

我从未使用过它,从未见过它被使用过,而且我不知道它存在。但这可能正是您要找的。对我来说,它只在这样的场景中有用,在这种情况下,测试可能需要更长的时间,如果某些先决条件确定其中很多测试肯定会失败,那么跳过一些测试可能是有益的。

关于c# - 如何创建具有依赖关系的单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49039803/

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