Ruby · Intermediário · Inglês · Técnico
let
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
endExemplos
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!