O Minitest existe aqui: os testes deste app são RSpec, e esse é o ponto de partida
O que os testes deste app rodam
ls -d spec test
ls: cannot access 'test': No such file or directory
spec
Os testes deste app ficam em spec/ e rodam com bundle exec rspec spec/. A linha 60 do Gemfile diz gem "rspec-rails". Não existe diretório test/, que é onde uma suíte Minitest ficaria. Se algum curso disser que este app "não tem testes", esse curso olhou a convenção errada.
Então por que um curso sobre Minitest
O Minitest é o framework de testes padrão e embutido do Rails. É uma gem (minitest, versão 6.0.2) da qual activesupport e rails-dom-testing dependem, então ela já está instalada aqui. O ActiveSupport::TestCase, a classe da qual todo teste de model do Rails herda, também está na instalação do Rails deste app. Faça require "active_support/test_case" no bin/rails runner e ActiveSupport::TestCase.ancestors inclui Minitest::Test. Este app escolheu o RSpec em vez dele, do jeito que um app Rails pode escolher PostgreSQL em vez de MySQL, ou Tailwind em vez de Bootstrap. As duas ferramentas são válidas; este app escolheu uma.
O que este curso ensina, e como foi checado
Sete aulas sobre a mecânica de testes de model do Minitest, lida do código-fonte instalado das gems activesupport e minitest. A aula 2 trata da hierarquia de classes do ActiveSupport::TestCase. A aula 3 roda assert_equal e assert_predicate contra um model ActiveRecord descartável dentro do ambiente Rails deste app. A aula 4 roda assert_difference, o acréscimo do Rails ao Minitest puro, do mesmo jeito. A aula 5 trata da convenção de nomes de arquivo e checa se este app conecta um mecanismo instalado, o ActiveRecord::TestFixtures. A aula 6 traduz dois exemplos RSpec deste app para Minitest, lado a lado.
O plano para o resto deste curso
As afirmações das próximas seis aulas foram executadas, não só lidas. As assertions da aula 3, por exemplo, foram para um arquivo Ruby, apontadas para um model ActiveRecord descartável na conexão Postgres deste app, e rodadas com ruby, produzindo uma contagem de passou/falhou. A solução de referência do desafio da aula 7 foi checada do mesmo jeito antes de entrar no ar. O próximo curso, Fundamentos de RSpec, continua de onde a aula 6 para: o framework que este app escolheu, nos termos dele.
Continue com a aula 2
ActiveSupport::TestCase: a classe sobre a qual todo teste de model em Minitest se apoia
Mostra que o ActiveSupport::TestCase é subclasse de Minitest::Test e como o helper test define métodos comuns.
Com uma conta grátis você também tem os quizzes, seu progresso e suas anotações, e a discussão.