Project

mimoco

0.0
The project is in a healthy, maintained state
Some testing for models and controllers
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

 Project Readme

MiMoCo

Gem Version GEM Downloads rake Ruby Style Guide MIT License

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.