MiMoCo
Mimoco (MInitest MOdels COntrollers) DRY your tests by specifying some (trivial) of them via a table.
Mimoco doesn't replace the "assert"s of MiniTest. It is more a kind of a quick and dirty check. Still, it has demonstrated to be useful, in particular, to detect code changes which often went unseen.
Installation
As usual:
# Gemfile
gem "mimoco"
and run "bundle install".
Usage for Models
require "test_helper"
require "mimoco"
class ModelsTest < Minitest::Test
def test_some
models = {
Order => {
valid: {name: "Name", qty: 123},
invalid: {qty: :abc},
class_methods: %i[class_method],
call_class_methods: %i[class_method],
public_methods: %i[public_method],
call_public_methods: %i[public_method]
},
Article => ...
}
check_models models
end
end
Furthermore, "valids" and "invalids" accepts an array of hashes to create models to be checked.
"call_public_methods" requires a "valid" item to instantiated a model used to applicate the methods.
Usage for Controllers
require "test_helper"
require "mimoco"
class ControllersTest < ActionDispatch::IntegrationTest
def test_some
controllers = {
OrdersController => {
respond_to: %i[create destroy edit index new show update],
class_methods: %i[class_method],
call_class_methods: %i[class_method],
public_methods: %i[create destroy edit index new show update]
}
ArticlesController => ...
}
check_controllers controllers
end
end
Parameter
Rails magic adds a few additional methods to a model or a controller (e.g. #column_headers).
MiMoCo ignores them, but future versions of Rails may add more. They can be ignored by:
check_models models, ignore_methods: magic_method
...
check_controllers controllers, ignore_methods: %i[magic2 magic3]
Miscellaneous
Copyright (c) 2022-2024 Dittmar Krall (www.matiq.com), released under the MIT license.