Rspec-core: كيفية الحصول على اسم المواصفات داخل `let` block

تم إنشاؤها على ٢٨ مايو ٢٠٢٠  ·  5تعليقات  ·  مصدر: rspec/rspec-core

مرحبًا ، شكرًا على الجوهرة الرائعة كما هو الحال دائمًا :)

أريد الحصول على اسم المواصفات (= اسم السياق؟) في الداخل block block ولكن IDK إذا كان هذا ممكنًا أم لا من شأنه أن يساعد إذا كان بإمكانك الإجابة 🙌 شكرًا.

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

ال 5 كومينتر

مرحباtake
بالتأكيد من الممكن:

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

      end

أعتقد أنه يمكنك استخدام المعامل it أيضًا للحصول على هذه المعلومات في المثال نفسه.
هناك الكثير من الأشياء الأخرى التي يمكن الوصول إليها هناك.

أنت مرحب بك دائما!

اها شكرا جزيلا لك! 🙌

تضمين التغريدة

هل تعرف أي إصدار من rspec-core يتضمن هذه الميزة؟ :عيون:

في تطبيق rspec-core 3.9.2 ، يظهر لي الخطأ التالي 🤔

Failure/Error: example.metadata[:full_description]

NoMethodError:
  undefined method `metadata' for nil:NilClass

take هل يمكنك من فضلك تقديم سياق أكثر بقليل كيف تبدو التعليمات البرمجية الخاصة بك؟
المفتاح هو do |example| في let(:spec_name) do |example| .

آسف تم حل المشكلة ، شكرا للمساعدة! 🙌

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات