问题标签 [testunit]

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 投票
4 回答
2602 浏览

ruby-on-rails - Ruby 断言和禁用输入

有谁知道如何断言复选框或输入被禁用?我找不到任何表明支持此功能的内容我正在使用 webrat 和 test/unit 编写黄瓜测试。

我想要一个能够 assert_disabled 的步骤:some_checkbox || assert_disabled :some_input。

或者我可以检查复选框的属性的某种方式。

0 投票
1 回答
1027 浏览

ruby - JRuby and Test::Unit's assert_raise

I'm having trouble making assert_raise recognize java exceptions.

I can do

which works fine, but if I try to get more specific

I get the error

However, I can use begin/rescue/end to catch the exception:

Is there something I'm doing wrong, or is this a failure on Test::Unit's part?

0 投票
2 回答
593 浏览

ruby - 从 Shoulda 方法访问断言方法

我有一个应该测试 XPath 条件的控制器响应的宏/方法,如下所示:

XPath 匹配和内置断言效果很好。但是,我有一个测试用例,我希望存在一个匹配元素。这是可选块的工作:向调用者公开 XPath 匹配,以便它可以执行附加的/特定于上下文的断言。

不幸的是,当我真正通过一个街区时:

...我收到此错误:

NoMethodError:未定义的方法“assert_equal”为用户::会话控制器测试:类

这是(据我所知)是因为 Shoulda 的工作方式:传递给“should”调用(包括块)的参数是在测试类的上下文中定义的,而不是在测试类的实例中定义的。Test::Unit::Assertions.assert* 是模块实例方法,所以我不能方便地访问它们。

所以,我的问题是:是否有一种方便/惯用的方法可以轻松地从 Test::Unit::Assertions 访问 assert* 方法?该解决方案必须与 Shoulda 一起使用,尽管它不一定需要依赖于 Shoulda;直接的 Ruby 方式就可以了。

0 投票
2 回答
1031 浏览

ruby - 确保拆解在 Test::Unit::TestCase 中运行?

Test::Unit::TestCase用来写一些单元测试。目前,我有一个setup功能可以移动和修改磁盘上的一些夹具文件和文件夹。(目前这是一个必要的邪恶。)如果测试崩溃,teardown则不会调用该方法,从而留下文件和文件夹。下次我运行测试时,它会抱怨某某文件夹已经存在(Errno::EEXIST),这让我不得不停下来摆脱剩余的文件。

我怎么ensure总是teardown运行?(与其他一些语言ensure的想法相同finally。)

0 投票
1 回答
1705 浏览

ruby-on-rails - 通过 Rails 中的 assert_routing 测试具有主机约束的路由

我有一个路由,我使用约束来检查主机,然后是一个基本上相同但没有主机限制的路由(这些实际上是命名空间,但为了简单起见,这个例子会做):

在通过浏览器访问时以及在定义主机和执行get "/page_key"等时的集成测试中,这些工作完全符合预期。

但是我想编写测试以确保这些路由到目前为止工作我没有太多运气,因为以下测试(目前在一个ActionController::IntegrationTest所以我可以设置主机)匹配没有约束的那个:

如果我尝试将 env 转储到约束 proc 中,我得到的只是--- :controller.

如果我摆脱了 assert_routing 并且只是进行get :show调用并转储@controller它确实会解析到正确的控制器(正如预期的那样,这些路由都可以通过 HTTP 请求正常工作)。

0 投票
3 回答
670 浏览

ruby-on-rails - 轨道测试速度可以提高吗?

我最近转换到 TDD,但是随着我的代码库的大小和复杂性的增长,我发现自己每次要运行测试时都要等待越来越长的时间来加载框架。

我知道 rspec 的 spec_server,但我将 Test::Unit 与 shoulda 一起使用。我尝试了 Snailgun(http://github.com/candlerb/snailgun),但发现速度几乎没有增加。我也尝试过 spork-testunit ( http://github.com/timcharper/spork-testunit ),但它与我现有的测试并不完全兼容。

运行测试的延迟是一个明确的痛点,让我远离 TDD(至少在 Rails 中)。有人知道其他选择吗?

0 投票
2 回答
1864 浏览

ruby - 如何在 Ruby 中继承抽象单元测试?

我有两个单元测试应该共享很多常见的测试,但设置方法略有不同。如果我写类似

那么 Concrete1 似乎没有从 Abstract 继承测试。或者至少我不能让它们在 Eclipse 中运行。如果我为包含 Concrete1 的文件选择“运行所有测试用例”,那么即使我不希望它运行 Abstract 也会运行。如果我指定 Concrete1,那么它根本不会运行任何测试!如果我在 Concrete1 中指定 test_1,那么它会抱怨找不到它(“uncaught throw :invalid_test (ArgumentError)”)。

我是红宝石的新手。我在这里想念什么?

0 投票
1 回答
265 浏览

ruby - 如何对线程中的异常进行单元测试

我需要对代码中引发的异常进行单元测试,例如:

如何让这个工作?

0 投票
1 回答
390 浏览

ruby - ruby 1.9.1 中有哪些命令行选项可用于测试/单元?

如果您在 ruby​​ 1.9.1 中使用 Test::Unit 兼容层,有哪些命令行选项可用?

背景

提供有关在 ruby​​ 1.8.7 中可用的命令行选项的信息,但在没有 test-unit gem 的 ruby​​ 1.9.1 中不可用。查看 ruby​​ 1.9.1 rdoc的 Test and Test::Unit也无济于事。

Ruby 1.9.2 及更高版本为该--help选项提供了有用的输出。

0 投票
2 回答
9145 浏览

ruby-on-rails - 如何使用 Test::Unit 跳过某些测试

在我的一个项目中,我需要与多个后端系统协作。其中一些在文档中有些缺乏,因此我有一些测试代码与一些测试服务器交互,只是为了看到一切都按预期工作。但是,访问这些服务器非常慢,因此我不想在每次运行我的测试套件时都运行这些测试。

我的问题是如何处理您想跳过某些测试的情况。目前,我使用环境变量“BACKEND_TEST”和条件语句来检查是否为我想跳过的每个测试设置了变量。但有时我想跳过测试文件中的所有测试,而不必在每个测试的开头添加额外的行。

必须与测试服务器交互的测试并不多,因为我在其他情况下使用 flexmock。但是,你不能嘲笑自己远离现实。

从这个问题的标题可以看出,我使用的是 Test::Unit。此外,如果有任何区别,该项目就是 Rails 项目。