Add proper dependency versions to gemspec.
Tests are more robust.

* Some versions of MiniTest expose `MiniTest::Test`, but we still
  patch `MiniTest::Unit::TestCase` for compatibility.
* `test_` is generally reserved in Ruby based testing frameworks. I
  don't know how we got this far using a method prefixed with
  `test_`, but let's avoid conflicts and rename the offending method.