Rspec-core: So erhalten Sie den Namen der Spezifikation im `let`-Block

Erstellt am 28. Mai 2020  ·  5Kommentare  ·  Quelle: rspec/rspec-core

Hallo, danke für das tolle Juwel wie immer :)

Ich möchte den Namen der Spezifikation (= Kontextname?) innerhalb des Blocks erhalten, aber IDK, wenn dies möglich ist oder nicht 🤔 würde helfen, wenn Sie antworten könnten 🙌 danke.

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

Alle 5 Kommentare

Hallo @take
Sicher ist es möglich:

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

      end

Ich glaube, Sie können auch den Parameter für it , um solche Informationen im Beispiel selbst zu erhalten.
Es gibt viel mehr andere Dinge, die dort zugänglich sind.

Du bist jederzeit willkommen!

aha vielen dank! 🙌

@pirj

Wissen Sie, welche Version von rspec-core diese Funktion enthält? :Augen:

in meiner rspec-core 3.9.2 App erhalte ich die folgende Fehlermeldung 🤔

Failure/Error: example.metadata[:full_description]

NoMethodError:
  undefined method `metadata' for nil:NilClass

@take Können Sie bitte etwas mehr Kontext bereitstellen, wie Ihr Code aussieht?
Der Schlüssel ist do |example| in let(:spec_name) do |example| .

sorry Problem ist gelöst, danke für die Hilfe! 🙌

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen