问题标签 [functional-testing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
9 回答
2063 浏览

unit-testing - 如何减少花在测试上的时间?

我刚刚回顾了最近即将完成的项目,发现了一个非常严重的问题。我将大部分时间花在测试代码上,重现“可能”导致代码错误的不同情况。

您有什么想法或经验可以分享,如何减少测试时间,从而使开发更加顺利?

我尝试对我的所有代码都遵循测试驱动的概念,但我发现实现这一点真的很难,真的需要这里的资深人士的帮助。

谢谢

回复:全部

感谢上面的答案,最初我的问题是如何减少一般测试的时间,但现在,问题归结为如何编写有效的自动化测试代码。

我将尝试提高我如何编写测试服的技能以减少这部分时间。

但是,我仍然很纠结如何减少重现错误所花费的时间,例如,一个标准的博客项目很容易重现可能导致错误的情况,但复杂的定制内部系统可能“永远”无法测试轻松完成,值得吗?您对如何在此类项目上构建测试计划有任何想法吗?

感谢您的进一步回答。

0 投票
5 回答
1776 浏览

c# - 如何自动化测试中等信任代码

我想编写以中等信任运行的自动化测试,如果它们需要完全信任则失败。

我正在编写一个库,其中某些功能仅在完全信任的情况下可用,我想验证我希望在中等信任下运行的代码是否可以正常工作。如果还想知道如果我更改需要完全信任的课程,我的测试将失败。

我已尝试创建另一个 AppDomain 并加载中等信任 PolicyLevel,但在尝试运行跨 AppDomain 回调时,我总是遇到程序集错误或无法加载其依赖项。

有没有办法解决这个问题?

更新:基于回复,这就是我所拥有的。请注意,您正在测试的类必须扩展 MarshalByRefObject。这是非常有限的,但我看不到解决方法。

0 投票
3 回答
1334 浏览

integration-testing - 如何管理端到端测试的测试夹具?

刚刚为一个新的 Web 应用程序设置了一个测试框架,我意识到我错过了一个大问题:“我如何使测试彼此独立?”

几年前,我设置了一些复杂的 Ant 脚本来执行删除所有数据库表、再次创建模式、添加测试数据、启动应用程序、运行一个测试然后停止应用程序的完整周期。由于运行整个套件需要时间,因此维护起来很痛苦,并且限制了我们进行夜间测试。它仍然值得,但我想知道是否有更简单的方法。

这种方法有替代方案吗?主要标准是每个测试都不应受到套件中任何其他测试的影响,无论它是失败还是成功。

0 投票
6 回答
3332 浏览

asp.net - 将自动化 Web 测试集成到构建过程中

我正在寻找改进网站功能测试自动化过程的建议。这是我过去尝试过的。

我曾经有一个使用WATIN的测试项目。您有效地编写了看起来像“单元测试”的内容,并使用 WATIN 自动化浏览器以点击您的网站等。

当然,您需要一个站点才能运行。所以我让测试实际上将代码从我的 web 项目复制到本地目录,并在任何测试运行之前启动了一个指向该目录的 web 服务器。

这样,新人可以简单地从我们的源代码控制中获取最新信息并运行我们的构建脚本,并查看所有测试的运行情况。他们还可以简单地从 IDE 运行所有测试。

我遇到的问题是我花了很多时间来维护代码来设置测试环境,而不是测试。更不用说由于所有的复制需要很长时间才能运行。此外,我需要测试包括安装在内的各种场景,这意味着我需要能够将数据库设置为各种初始状态。

我很好奇你做了什么来自动化功能测试来解决其中一些问题并保持简单。

更多细节 由于人们要求更多细节,这里就是。我正在使用 Visual Studio 和 Cassini(内置 Web 服务器)运行 ASP.NET。我的单元测试在 MbUnit 中运行(但这并不重要。可能是 NUnit 或 XUnit.NET)。通常,我有一个单独的单元测试框架来运行我所有的 WATIN 测试。在 AssemblyLoad 阶段,我启动 Web 服务器并在本地复制我的所有 Web 应用程序代码。

我对任何平台的解决方案都感兴趣,但我可能需要更多关于每件事的含义的描述。:)

0 投票
2 回答
2039 浏览

ruby-on-rails - DRYer 与 factory_girl 中的关联进行测试

任何人都可以提出一种更好的方法来让工厂使用预先构建的模型实例进行关联吗?例如,这样就可以在下面定义消息工厂的子级,以便调用 to Factory(:my_message)可以代替 Factory(:message,:sender=>@me)?

有时设置散列比这个人为的例子更复杂,或者只是在很多测试中重复,看起来最好把它推到工厂里。

我能想到的一种替代方法是定义一个测试辅助方法,例如create_message_owned_by(@me),但我希望 factory_girl 本身有一种方法。

factory_girl 工厂:

MessagesControllerTest 摘录(使用 shoulda):

0 投票
2 回答
1069 浏览

authlogic - 功能/集成测试中的 Authlogic edit_password_reset_url

我正在尝试实施一些测试来验证 Authlogic 密码重置的行为,如http://www.binarylogic.com/2008/11/16/tutorial-reset-passwords-with-authlogic/中所述

我正在使用 Authlogic、Shouda、Webrat 和 Factory Girl,这是我的测试:

在测试的最后两行中,我试图确保发出的链接具有正确的 perishable_token,并且打印的 Perishable Token 和发出的链接中的令牌总是不同。

我应该如何测试这种行为?

谢谢,湿婆

0 投票
3 回答
4571 浏览

asp.net - 如何自动化功能/集成测试和数据库回滚

与我之前的问题相反,我将尝试给出我的要求。

我正在尝试找到一些适合以下内容的框架/方法/“事物”:

  • 能够使用 C# 编写自动化测试,最好用 Visual Studio 编写。
  • 测试应该像用户一样驱动 Web 浏览器并与 SUT 交互。
  • 测试应该能够在数据库中设置测试场景。
  • 测试应该能够断言用户交互在 DB 中具有预期的效果。
  • 测试完成后,它应该能够回滚它在数据库中所做的所有更改。

我的第一次尝试是使用 NUnit 测试来驱动 Selenium(以及之前的 Watin),但我在使用 TransactionScope 回滚 Selenium 驱动的浏览器在数据库中所做的更改时遇到了一些问题(检查上面的链接)。

有没有人在“现实世界”中做过这样的事情?我通过谷歌找到了一些参考资料,但还没有找到任何具体的例子来说明如何实现这一点。如果我要进行单元测试,就不会有任何问题。在那种情况下,TransactionScope 就足够了。

编辑: R. Harvey 向我指出了这个问题,这与我的情况几乎相同。

然而,这个问题几乎是相同的。我的应用程序是一系列服务的一部分,它们都访问同一组数据库表。所需的测试数据量不允许有效使用 drop/create-scripts,那么是否有一些替代解决方案?

我们使用的是 SQL Server 2005,而且我对数据库魔法不是很精通,所以如果除了 drop/create 之外还有其他方法可以使用 sql 脚本,那么这可能是一个选择。

编辑2:

根据答案和一些额外的头疼问题,我们将为开发人员寻找更轻量级的数据库来执行单元、集成和功能测试。这使我们能够使用 sql 脚本来设置和拆除测试。

0 投票
2 回答
1725 浏览

ruby-on-rails - 在Ruby on Rails中断言关系中的孩子数量的差异

我的控制器能够创建一个子 book_loan。我试图在功能测试中测试这种行为,但很难使用 assert_difference 方法。我尝试了多种将 book_loans 计数传递给 assert_difference 的方法,但都没有成功。

无法将 BookLoan 转换为字符串

NoMethodError:未定义的方法“book_loans”用于#

无法将 Proc 转换为字符串

0 投票
1 回答
2523 浏览

ruby-on-rails - 如何断言操作返回正确的文本?

是否有标准或最佳实践方法来测试 Rails 中的操作是否返回正确的文本?例如,我有一个用于执行 ajax 验证的简单操作,它执行以下操作:

现在,我在我的测试中使用@response 对象......即:

但是,尽管对 Rails 来说大多是新手,但到目前为止我所看到的似乎表明,除了检查之外,可能还有更好的方法来做到这一点@request.body

所以,我对你们红宝石专家的问题是:这是最好的方法吗?

0 投票
4 回答
370 浏览

firefox - 如何通过 Firefox 浏览器自动化进行功能测试?

我必须自动化 Firefox 应用程序来进行功能测试,

请帮助我可以使用哪种测试工具。

谢谢