RSpec Matchers

RSpec Matchers são componentes da biblioteca de teste RSpec, usada no ecossistema Ruby para escrever testes automatizados. Eles são responsáveis por verificar se o resultado de um teste corresponde a um valor esperado ou a uma condição específica. Os matchers são usados dentro de blocos expect para aumentar a expressividade e clareza dos testes.

Por exemplo, se você tem uma variável resultado que deve ser igual a 5, o matcher para verificar isso seria eq(5), e a linha no teste ficaria assim: expect(resultado).to eq(5).

Existem diferentes tipos de matchers no RSpec:

  1. Equality Matchers: Verificam se o resultado é igual ao esperado. Exemplos: eq, eql, equal.

  2. Comparison Matchers: Comparam valores utilizando operadores de comparação. Exemplos: be >, be <, be >=, be <=.

  3. Type Matchers: Verificam o tipo ou a classe. Exemplo: be_a, be_an_instance_of.

  4. Predicate Matchers: Usam métodos predicativos que terminam com ?. Por exemplo, para verificar se um array está vazio, você pode usar: be_empty.

  5. Collection Matchers: Trabalham com elementos de coleções, como arrays e hashes. Exemplos: include, contain_exactly.

Utilizar matchers no RSpec permite escrever testes que são mais legíveis e que expressam claramente a intenção do teste, facilitando a manutenção e compreensão do código de teste.