测试 简介 Fix

cyri_ · 2015年10月05日 · 最后由 yukihiro_matz 回复于 2015年10月06日 · 2294 次阅读

为规范在 Ruby 中的新工具.

Fix 的是一个最低限度的测试工具。这是不到 200 行代码。它是基于SpectusMatchi等的Defi

这里是代码的一个例子:

class Monster
  def self.get
    {
      boo: {
        name: 'Boo',
        life: 123,
        mana: 42
      },
      hasu: {
        name: 'Hasu',
        life: 88,
        mana: 40
      }
    }
  end

  def get(id)
    self.class.get.fetch(id)
  end
end

随着 Fix 的,我们可以写这个测试:

require_relative 'monster'
require 'fix'

Fix.describe Monster do
  on :get do
    on :keys do
      it { MUST eql %i(boo hasu) }
    end
  end

  on :new do
    on :get, :boo do
      it { MUST eql({ name: 'Boo', life: 123, mana: 42 }) }
    end

    on :get, :boom do
      it { MUST raise_exception KeyError }
    end
  end
end

下面是结果:

ruby monster_fix_spec.rb
...

Ran 3 tests in 0.000411 seconds
100% compliant - 0 infos, 0 failures, 0 errors

欲了解更多详情,您可以在这里找到的文档。

快乐编码!!

需要 登录 后方可回复, 如果你还没有账号请 注册新账号