rbs VS minitest

Compare rbs vs minitest and see what are their differences.

minitest

minitest provides a complete suite of testing facilities supporting TDD, BDD, mocking, and benchmarking. (by minitest)
Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
rbs minitest
20 10
1,875 3,242
1.2% 0.6%
9.7 8.0
3 days ago 13 days ago
Ruby Ruby
GNU General Public License v3.0 or later MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

rbs

Posts with mentions or reviews of rbs. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-02-21.
  • A decent VS Code and Ruby on Rails setup
    8 projects | news.ycombinator.com | 21 Feb 2024
    I saw no mention of RBS+Steep, the latter providing a LSP. I use it a lot and very much like it, although it's still young and needs love, but it's making good, steady progress! I've been very pleasantly surprised by some of the crazy things Steep can catch, completely statically!

    You appear to be working on projects with Sorbet (which I tried to like but found it fell short in practice, notably outside of the app use case i.e it's mostly useless for gems) so it may be a tall order to try on those. Maybe you can give RBS+Steep a shot on some small project?

    RBS: https://github.com/ruby/rbs

    RBS collection (for those gems that don't ship RBS signatures in `sig`, integrates with bundler): https://github.com/ruby/gem_rbs_collection

    Steep: https://github.com/soutaro/steep

    VS Code: https://github.com/soutaro/steep-vscode

    Sublime Text: https://github.com/sublimelsp/LSP

    Vim (I'm working on it): https://github.com/dense-analysis/ale/pull/4671

  • What it was like working for Gitlab
    3 projects | news.ycombinator.com | 11 Feb 2024
    I don't know what you mean by "Static typing is not webscale".

    > https://news.ycombinator.com/item?id=39159481

    Bugs exist in all code written in all programming languages and you will find bugs in programs written in statically typed languages too as you know. Programming languages are rarely chosen for the absense of bugs alone though or we'd all be using SPARK Ada or something.

    > spitting out code as fast as your keyboard works, or is is not having features do weirdo things

    This is a straw man. No-one has suggested that "spitting out code as fast as your keyboard works" is what Rails allows you to do, or that Ruby code results in features that "do weirdo things".

    In reality engineer productivity is important and Rails enables it in a web environment.

    > I have more than once tried to contribute fixes to GitLab's codebase, and every time I open the thing in RubyMine it hurpdurps having no earthly idea where symbols come from or what completions are legal in any given context.

    Yes, I prefer writing statically typed languages and I would /greatly/ prefer Ruby to be statically typed for a number of reasons, but it will likely never be so in a way I consider to be usable (see https://github.com/ruby/rbs). Not being able to definitively tell what a method returns or where one is defined is a total PITA, but it's one of the array of up and downsides to Ruby, with each language having a different set.

    > I trust JetBrains analysis deeply, so if they can't deduce what's going on, then it must take an impressive amount of glucose to memorize every single surface area one needs to implement a feature.

    You don't need to know how all of Rails works to write a Rails app, as I'm sure you know, so this seems like another mis-representation of the truth, just as you don't need to know how the compiler or CPUs work to do a lot of (most?) programming.

    > That or, hear me out, maybe "it works on my machine" is a close to correct as the language is going to get without explicit type hints as a pseudo static typing

    You seem to be suggesting that Ruby on Rails applications behave unpredictably on a machine to machine basis but that's not really how Ruby works in practice, or matching on my experience.

  • InfoQ Interview: Rich Kilmer on the Power of Ruby
    1 project | news.ycombinator.com | 15 Jun 2023
    Are you familiar with rbs (https://github.com/ruby/rbs)? If so, what issues do you see with using that over TypeScript?
  • Building GitHub with Ruby on Rails
    11 projects | news.ycombinator.com | 7 Apr 2023
  • Ruby 3.2’s YJIT is Production-Ready
    8 projects | news.ycombinator.com | 17 Jan 2023
    Ruby does have optional type annotations, if you want them:

    https://github.com/ruby/rbs

  • Crystal for Rubyists
    9 projects | news.ycombinator.com | 28 Nov 2022
  • Is anyone using RBS?
    3 projects | /r/ruby | 8 Mar 2022
    Is anyone using RBS? Or, is it still half-baked? I haven't seen any recent posts about it this year. Though, I see the repo has some recent activity.
  • RBS introduced manifest.yaml
    2 projects | dev.to | 25 Dec 2021
    Currently rbs collection resolves stdlib dependencies, but rbs -r LIB option doesn't resolve them unfortunately. For instance, logger depends on monitor, but rbs -r logger doesn't load monitor.
  • Catching up on things
    7 projects | /r/ruby | 19 Dec 2021
    Here is link number 1 - Previous text "RBS"
  • The future of rbs collection
    9 projects | dev.to | 28 Sep 2021
    Partial clone reduces the impact, but it just procrastinates the problems.

minitest

Posts with mentions or reviews of minitest. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-03-21.
  • Test Driving a Rails API - Part Two
    7 projects | dev.to | 21 Mar 2024
    In this part, we’ll set up our testing environment so that we can test our Rails API using minitest with minitest/spec. We’ll look at the differences between traditional style unit tests and spec-style tests, or specs. I’ll demonstrate why you should use minitest-rails. We’ll look at using rack-test for testing our API. We’ll even create our own generator to generate API specs.
  • Where can I learn to deliver a proper solution?
    3 projects | /r/ruby | 8 Apr 2023
    I forgot to mention that reading code is also a good way to learn how to write code, it's like inspiration. Check repos of some gems you like. For example sidekiq https://github.com/sidekiq/sidekiq/tree/main/lib/sidekiq Or minitest https://github.com/minitest/minitest/tree/master/lib/minitest
  • I_suck_and_my_tests_are_order_dependent
    9 projects | news.ycombinator.com | 16 Feb 2023
    All through GitHub.

    1. From https://github.com/rails/rails/blob/6ffb29d24e05abbd9ffe3ea9..., click "Blame" on the header bar over the file contents.

    2. Scroll down to the line and click on the commit in the left column.

    3. Scroll down to the file that removed the line from its previous file, activesupport/lib/active_support/test_case.rb.

    4. Click the three-dots menu in that file's header bar and select "View file".

    5. Click "History" in the header bar of the contributors, above the file contents.

    6. I guessed here at commit 281f488 on its message: "Use the method provided by minitest to make tests order dependent". There's a comment here that identified the problem which led to, and provided context for, the change in 6ffb29d.

    The OP is from minitest's documentation, so to find the introduction in minitest, it's basically the same process.

    1. Go to https://github.com/minitest/minitest.

    2. Search the repo for the method name. Even just "i_suck" will match the commit.

    3. Select the oldest commit in the results. That's a4553e2.

  • Minitest, we've been doing it wrong?
    4 projects | /r/ruby | 2 Oct 2022
    The new test convention is now "test/**/test_*.rb" instead of "test/**/*_test.rb". For example, Puma and Minitest are popular repositories using this naming pattern.
  • Ask HN: Codebases with great, easy to read code?
    35 projects | news.ycombinator.com | 21 Mar 2022
    https://github.com/seattlerb/minitest really removed the FUD for me when i started learning Ruby and Rails. Its full of metaprogramming and fancy tricks but is also quite small, practical and informal in its style.

    e.g. "assert_equal" is really just "expected == actual" at it's core but it uses both both a block param (a kind of closure) for composing a default message and calls "diff" which is a dumb wrapper around the system "diff" utility (horrors!). There is even some evolved nastiness in there for an API change that uses the existing assert/refute logic to raise an informative message. this is handled with a simple if and not some sort of complex hard-to-follow factory pattern or dependency injection misuse.

    https://github.com/seattlerb/minitest/blob/master/lib/minite...

  • 49 Days of Ruby: Day 46 -- Testing Frameworks: Minitest
    1 project | dev.to | 11 May 2021
    Those are just a few examples of what you can do with Minitest! Check out their README on GitHub and keep on exploring.
  • Ruby through the lens of Go
    9 projects | dev.to | 16 Apr 2021
    One of the things I love the most about Ruby is that it tends to coalesce around one or two really popular libraries. Rails is the big one obviously, but over time you see libraries designed for a particular purpose "winning" over other things. This includes things like linting/code analysis (Rubocop), authentication (Devise), testing (RSpec and Minitest) and more. The emphasis is on making something good great rather than making a lot of different good things.
  • Best way to learn testing in RSpec?
    1 project | /r/rails | 31 Mar 2021
    Then try minitest (unit and spec verisons) https://github.com/seattlerb/minitest

What are some alternatives?

When comparing rbs and minitest you can also consider the following projects:

dry-validation - Validation library with type-safe schemas and rules

Test::Unit - test-unit

sorbet - A fast, powerful type checker designed for Ruby

RSpec - RSpec meta-gem that depends on the other components

steep - Static type checker for Ruby

Cucumber - A home for issues that are common to multiple cucumber repositories

typeprof - An experimental type-level Ruby interpreter for testing and understanding Ruby code

Pundit Matchers - A set of RSpec matchers for testing Pundit authorisation policies.

rubygems - Library packaging and distribution for Ruby.

shoulda-matchers - Simple one-liner tests for common Rails functionality

Ruby on Rails - Ruby on Rails

Aruba - Test command-line applications with Cucumber-Ruby, RSpec or Minitest.