Ruby单元测试,显示错误的故障数

Ruby单元测试,显示错误的故障数,ruby,unit-testing,Ruby,Unit Testing,情况很简单。我有这样一个模块(first.rb): 和一个测试类(TestFist.rb): 要求“测试/单元” 需要“./首先” 类TestFirst

情况很简单。我有这样一个模块(first.rb):

和一个测试类(TestFist.rb):

要求“测试/单元”
需要“./首先”
类TestFirst
运行此测试时,为什么会得到这样的答案:

$ ruby TestFirst.rb
Run options:

# Running tests:

FF

Finished tests in 0.001000s, 2000.0000 tests/s, 5000.0000 assertions/s.

  1) Failure:
test_fist(TestFirst) [TestFirst.rb:9]:
<"two"> expected but was
<"twoe">.

  2) Failure:
test_second(TestFirst) [TestFirst.rb:17]:
<3> expected but was
<4>.

2 tests, 5 assertions, 2 failures, 0 errors, 0 skips
$ruby TestFirst.rb
运行选项:
#运行测试:
FF
以0.001000s、2000.0000次测试/秒、5000.0000次断言/秒的速度完成测试。
1) 失败:
test_first(TestFirst)[TestFirst.rb:9]:
预料之中,但事实并非如此
.
2) 失败:
测试秒(TestFirst)[TestFirst.rb:17]:
预料之中,但事实并非如此
.
2次测试,5次断言,2次失败,0次错误,0次跳过
最后一行让我觉得我做错了什么。我希望这样:

$ ruby TestFirst.rb
Run options:

# Running tests:

FF

Finished tests in 0.001000s, 2000.0000 tests/s, 5000.0000 assertions/s.

  1) Failure:
test_fist(TestFirst) [TestFirst.rb:9]:
<"two"> expected but was
<"twoe">.

  2) Failure:
test_second(TestFirst) [TestFirst.rb:17]:
<3> expected but was
<4>.

2 tests, 5 assertions, 2 failures, 0 errors, 0 skips
2次测试,6次断言,3次失败,0次错误,0次跳过

不是


2个测试,5个断言,2个失败,0个错误,0个跳过

第一个测试在第一个失败的断言之后中止,因此它从不执行行
assert_equal(“三”,ret_s(3))

我知道所有这些都是关于这个测试的,但是断言不应该注册失败并转到下一个吗?不确定您如何定义“不应该”。如果您指的是“定义的行为”,那么不应该,因为这不是测试套件的工作方式,我在第一次失败的断言之后使用的所有测试套件都会中止。如果你的意思是“逻辑上正确的行为”,那么我想这取决于每个人。对我来说,这是有道理的:如果我断言返回的用户是预期的用户,并且电子邮件匹配,但结果却是错误的用户,那么检查电子邮件也没有意义。如果他们匹配,这纯粹是巧合,如果他们不匹配,这只是垃圾邮件,第一个断言就是实际问题。
$ ruby TestFirst.rb
Run options:

# Running tests:

FF

Finished tests in 0.001000s, 2000.0000 tests/s, 5000.0000 assertions/s.

  1) Failure:
test_fist(TestFirst) [TestFirst.rb:9]:
<"two"> expected but was
<"twoe">.

  2) Failure:
test_second(TestFirst) [TestFirst.rb:17]:
<3> expected but was
<4>.

2 tests, 5 assertions, 2 failures, 0 errors, 0 skips