ExpertiDict

Ruby · Intermediário · Inglês · Técnico

let

/lɛt/método

Método do RSpec que define um valor sob demanda num grupo de exemplos: é calculado no primeiro uso em cada exemplo e memorizado. O let! força o cálculo antes.

Onde usar

Aparece em specs para montar objetos de teste sem repetir código. Em excesso vira uma cadeia difícil de ler, o chamado mystery guest.

Em código

RSpec.describe Pedido do
  let(:pedido) { Pedido.new(total: 100) }

  it "calcula o desconto" do
    expect(pedido.desconto).to eq(10)
  end
end

Exemplos

Define the order with let and reuse it.

Defina o pedido com let e reutilize.

Let is lazy, so it only runs when you call it.

O let é preguiçoso, então só roda quando você o chama.

Cuidado

Não o confunda com variável de instância no before: o let é preguiçoso e recriado a cada exemplo, sem compartilhar estado entre testes.

Antônimos

let!

Veja também

Todos os termos de Ruby