我對Rspec有點新感覺,並且在出現問題時我正在編寫一些測試示例。在Rspec的鉤子中定義和使用常量
首先,我正在使用全局變量來定義我將在很多測試中使用的三個常量值。例如:
$message = 'this is a test'
但是,我注意到這個全局被轉移到其他測試文件並導致問題。好吧...然後決定避免使用全局變量,因爲如果我的測試文件數量增長,這可能會在未來造成很大的痛苦。
然後我去了let()塊。例如:
let(:message) { 'this is a test' }
現在的問題是,這個變量不能在鉤子之前和之後使用。好吧...
我最後一次嘗試使用常量的上下文中/介紹,像這樣:
self::MESSAGE = 'this is a test'
然而,就像咱們這個不能鉤內使用,因爲它們不是任何類或模塊。
所以,我堅持...
你們怎麼處理呢?我需要爲此創建實例變量嗎?那是我可以使用的其他選擇嗎?
非常感謝。
要清楚的是,'let'值*可以用在'之前(:每個)'和'之後(:每個)'塊中。它們不能用在'before(:all)'塊之前。一般來說,我認爲'before(:all)'塊是代碼異味,所以重構測試只使用'之前(:每個)'塊可以解決這個問題。 –
好的,是的......我仍然在爲我的測試掌握最好的方法,所以我會考慮您的建議!謝謝! –