【问题标题】:Need some ideas for writing automated tests需要一些编写自动化测试的想法
【发布时间】:2011-09-15 21:08:09
【问题描述】:

我正在使用 Selenium 和 C# 在 VS 2010 中编写一些单元测试。我有几个测试用例。例如,我的一些测试用例是:

  1. 启动网站:http://localhost:8080。验证登录页面是否存在。输入用户名和密码,然后登录。

  2. 检查“搜索”选项卡是否存在。单击搜索选项卡。验证“搜索图书”、“搜索图片”和“搜索网站”选项卡是否存在。

  3. 单击搜索图书。键入“C-Sharp for Dummies”。单击搜索。验证是否返回了适当的结果。

现在,我的问题是:为上述每个测试用例创建单独的类是更好的主意,还是将它们组合成一个类并只使用单独的方法更好?

所有三个测试用例都相互关联。我的意思是,执行#2 需要首先完成#1,而#3 需要首先完成#2。如果我创建单独的类,我相信我需要在类#2 中调用#1 中的方法,并在类#3 中调用#1 和#2 中的方法。

我不太确定这会是一个好主意。提前致谢。

【问题讨论】:

  • 只是挑剔那些将是集成测试,而不是单元测试

标签: c# selenium automated-tests


【解决方案1】:

如果您使用 NUnit 之类的东西来控制硒测试,那么点 1 可以在 SetUp 内,因为我们可以假设您的所有(或大部分)测试都需要登录才能执行任何操作。由于如果失败,您的所有测试都将失败,因此实际上不需要独立测试。

如果您考虑第 2 点和第 3 点之间的交互,则存在一些交叉,并且存在一些独立测试。

如果您考虑交叉测试(单击 Search Books 链接)第 3 点依赖于第 2 点在运行之前运行,因此没有必要进行两个单独的测试,如果测试 2 失败,那么测试 3 将始终失败。

在第 2 点中,您正在测试是否出现三个链接,但在测试 3 中,您只单击其中一个,因此第 2 点可能会失败但第 3 点会成功,因此它们应该是单独的测试。但是第 3 点并不完全依赖关于第 2 点。

就个人而言,您有两个选择,如果您还要测试“搜索图像”和“搜索网络”,那么您根本不应该有第 2 点。链接可见性的断言和链接的点击都应该融合到第3点中。

如果您不打算测试“搜索图像”和“搜索网络”,那么可以使用第 2 点。但是测试 3 不应调用第 2 点的方法,因为它会测试第 3 点不关心的额外功能。它应该假定存在“搜索图书”链接并独立于第 2 点单击它。

【讨论】:

  • 感谢您分享您的想法,并如此详细地解释您的观点。我想我会将#2 和#3 结合起来。
【解决方案2】:

如果测试是相关的,我会将它们保存在一个文件中,但这是基于您有多少测试的假设,因为我不希望只有一个包含大量测试的文件,所以我会合乎逻辑地将单独文件中的相关测试。我不会对此感到困惑,尤其是如果您现在没有太多测试。

您也可以尝试 WatiN 作为 Selenium 的替代品。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-28
    • 2011-09-21
    • 1970-01-01
    • 1970-01-01
    • 2012-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多