在描述和#39; ...'之间进行测试。做......并没有考虑到测试

时间:2013-11-30 00:27:31

标签: ruby-on-rails unit-testing

我有一个看起来像这样的测试:

class PageTest < ActiveSupport::TestCase

  describe "test" do
    test "should not save without attributes" do
      page = Page.new
      assert !page.save
    end
  end

end

运行测试时,我得到0 tests, 0 assertions。如果我删除描述“test”,我会得到1 test, 1 assertions。所以我觉得描述“......”实际上是让测试消失了。

这里发生了什么?我错过了什么?

1 个答案:

答案 0 :(得分:1)

看起来你正在混合最小的specsActiveSupport::TestCase。如果您在测试时检查了rails guides,则会解释test方法,但它不会与describe一起使用。

  

Rails添加了一个测试方法,它带有一个测试名称和一个块。它   生成一个正常的MiniTest :: Unit测试,其方法名称前缀为   测试_。所以,

test "the truth" do
  assert true
end 
  

表现得好像是你写的

def test_the_truth
  assert true
end

describe部分下的minitest docs解释了spec语法,并与it(而不是test一起使用)。像这样:

 describe "when asked about cheeseburgers" do
   it "must respond positively" do
     @meme.i_can_has_cheezburger?.must_equal "OHAI!"
   end
 end