Minitest::Mock#expectで ArgumentError: mocked method :method_name expects 1 arguments, got [] が出た件
結論
- minitest5.16.0からキーワード引数の指定方法が変わった
- 第三引数以降にkey, valueのキーワード引数を書いたらOK
概要
minitestで下記のエラーが出るようになった
ArgumentError: mocked method :method_name expects 1 arguments, got []
理由
元々、minitestにキーワード引数を渡すときは、第三引数にキーワード引数を渡していた。 ※コードは適当 github.com
tax_mock = Minitest::Mock.new tax_mock.expect(:tax, 8, [{ price: 100, tax_rate: 0.08 }])
が、5.16.0からkwargsに対応している。 github.com github.com
なので、5.16.0以降は、キーワード引数の場合、下記のように記述することになる。
tax_mock = Minitest::Mock.new tax_mock.expect(:tax, 8, price: 100, tax_rate: 0.08)