我對一個較舊的 Ruby 庫做出了開源貢獻,以修復上游依賴項更改的幾個錯誤。我認為它運行良好并修補了問題,但是,RSpec 測驗失敗并出現我無法理解的錯誤訊息。
.....................................F...........................
Failures:
1) MagicAdmin::Resource::Token instance methods public methods #validate
Failure/Error: validate_public_address!(rec_address, did_token)
#<MagicAdmin::Resource::Token:0x00007fac020ff7c0> received :validate_public_address! with unexpected arguments
expected: (#<Double "rec_address">, "WyIweHRlc3QwMDAwdGVzdDAwMDB0ZXN0MDAwMHRlc3QwMDAwdGVzdDAwMDB0ZXN0MDAwMHRlc3QwMDAwdGVzdDAwMDB0ZXN0MDAw...DAwMHRlc3QwMDAwdGVzdDAwMDB0ZXN0MDAwMHRlc3QwMDAwdGVzdDAwMDB0ZXN0MDAwMHRlc3QwMDAwdGVzdDAwMDBcIn0iXQ==")
got: ("#[Double \"rec_address\"]", "WyIweHRlc3QwMDAwdGVzdDAwMDB0ZXN0MDAwMHRlc3QwMDAwdGVzdDAwMDB0ZXN0MDAwMHRlc3QwMDAwdGVzdDAwMDB0ZXN0MDAw...DAwMHRlc3QwMDAwdGVzdDAwMDB0ZXN0MDAwMHRlc3QwMDAwdGVzdDAwMDB0ZXN0MDAwMHRlc3QwMDAwdGVzdDAwMDBcIn0iXQ==")
Diff:
@@ -1 1 @@
-[#<Double "rec_address">,
["#[Double \"rec_address\"]",
# ./lib/magic-admin/resource/token.rb:25:in `validate'
# ./test/resource/token_test.rb:31:in `block (4 levels) in <top (required)>'
# /Users/ajen/.rvm/gems/ruby-3.0.1/gems/webmock-3.14.0/lib/webmock/rspec.rb:37:in `block (2 levels) in <top (required)>'
Finished in 0.21978 seconds (files took 1.9 seconds to load)
65 examples, 1 failure
Failed examples:
rspec ./test/resource/token_test.rb:8 # MagicAdmin::Resource::Token instance methods public methods #validate
Coverage report generated for RSpec to /Users/ajen/pg/magic-admin-ruby/coverage. 633 / 643 LOC (98.44%) covered.
Stopped processing SimpleCov as a previous error not related to SimpleCov has been detected
這是相關測驗的永久深層鏈接:magic-admin-ruby/0b7c37e..633516b/test/resource/token_test.rb#L9-L31
具體來說,以下差異讓我感到困惑:
@@ -1 1 @@
-[#<Double "rec_address">,
["#[Double \"rec_address\"]",
我怎么讀這個?Ruby 的 RSpec 測驗替身之間#<foo>有什么區別?#[foo]
uj5u.com熱心網友回復:
當我看到這兩行
expected: (#<Double "rec_address">, "WyIweHRlc3QwMDAwdGVzdDAwMDB0ZXN0MDAwMHRlc3QwMDAwdGVzdDAwMDB0ZXN0MDAwMHRlc3QwMDAwdGVzdDAwMDB0ZXN0MDAw...DAwMHRlc3QwMDAwdGVzdDAwMDB0ZXN0MDAwMHRlc3QwMDAwdGVzdDAwMDB0ZXN0MDAwMHRlc3QwMDAwdGVzdDAwMDBcIn0iXQ==")
got: ("#[Double \"rec_address\"]", "WyIweHRlc3QwMDAwdGVzdDAwMDB0ZXN0MDAwMHRlc3QwMDAwdGVzdDAwMDB0ZXN0MDAwMHRlc3QwMDAwdGVzdDAwMDB0ZXN0MDAw...DAwMHRlc3QwMDAwdGVzdDAwMDB0ZXN0MDAwMHRlc3QwMDAwdGVzdDAwMDB0ZXN0MDAwMHRlc3QwMDAwdGVzdDAwMDBcIn0iXQ==")
然后看起來您期望 的實體Double,但您得到了 a 的String表示Double。請注意,第二行中的值用雙引號括起來,并且其中的引號被轉義。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/455842.html
