Rspec-core: Como obter o nome da especificação dentro do bloco `let`

Criado em 28 mai. 2020  ·  5Comentários  ·  Fonte: rspec/rspec-core

Olá, obrigado pela joia incrível como sempre :)

Eu quero obter o nome da especificação (= nome do contexto?) Dentro do bloco let, mas IDK se isso for possível ou não 🤔 ajudaria se você pudesse responder 🙌 obrigado.

RSpec.describe Foo do
  describe 'bar' do
    context 'when something is happening' do
      let(:spec_name) { # would be awesome if I can get "Foo bar when something is happening returns true" here }

      it 'returns true' do
      end
    end
  end
end

Todos 5 comentários

Olá @take
Com certeza é possível:

      let(:spec_name) do |example|
        example.metadata[:full_description] # => "Foo bar when something is happening returns true"

      end

Acredito que você também possa usar o parâmetro para it para obter essas informações no próprio exemplo.
Existem muitas outras coisas que estão acessíveis lá.

Você é sempre bem-vindo!

aha muito obrigado! 🙌

@pirj

você sabe qual versão do rspec-core inclui esse recurso? :olhos:

no meu aplicativo rspec-core 3.9.2 , recebo o seguinte erro 🤔

Failure/Error: example.metadata[:full_description]

NoMethodError:
  undefined method `metadata' for nil:NilClass

@take Você pode fornecer um pouco mais de contexto como o seu código se parece?
A chave é do |example| em let(:spec_name) do |example| .

desculpe problema está resolvido, obrigado pela ajuda! 🙌

Esta página foi útil?
0 / 5 - 0 avaliações