以下の内容はhttps://tech.buty4649.net/entry/2024/07/06/121812より取得しました。


mruby-test-stubを作った

mruby-yyjsonのテストコードを書くために、一部stubしたい部分ができた。 mruby-mtestにはstubする機能なく、mgem-listにもなさそうなので作った。

作ったと言ってもほとんどminitestのポーティングみたいな感じでスッと作れてよかった。

使い方

mrgem.rakeに以下を追加する。 これを追加するとrake testするときにObject.#stubが追加される。

# mrbgem.rake
MRuby::Gem::Specification.new('mruby-yyjson') do |spec|
-- snip --
  spec.add_test_dependency 'mruby-test-stub', github: 'buty4649/mruby-test-stub', branch: 'main'
-- snip --
end

以下はmruby-yyjsonでの利用例。

assert('JSON.#load') do
  stub = lambda do |obj, opts|
    assert_equal 'mruby-yyjson', obj, "Expected 'mruby-yyjson' as input to JSON.parse"
    assert_equal({ symbolize_names: true }, opts, 'Expected options { symbolize_names: true } for JSON.parse')
    'stub parse'
  end

  JSON.stub(:parse, stub) do
    assert_equal 'stub parse', JSON.load('mruby-yyjson', symbolize_names: true)
  end
end

基本的にはminitestのように使えるはず。




以上の内容はhttps://tech.buty4649.net/entry/2024/07/06/121812より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14