EDIT:
Решение, похоже, начинается с describe KayNein::Twitter do
вместо RSpec.describe KayNein::Twitter do
.
Почему это так?
Рельсы 5.2.1
Ruby 2.5.1p57 (версия 20130-03-29 63029) [x86_64-linux]
Оригинальный вопрос
У меня есть класс, который инициализируется с помощью файла JSON:
module KayNein
class Twitter < Handler
def initialize(json_file)
@website_hash = JSON.parse(json_file)
end
И я пытаюсь написать RSpec:
RSpec.describe KayNein::Twitter do
let (:json_file) {File.read(PATH_TO_FILE)}
context "Initialized" do
subject = KayNein::Twitter.new(json_file)
end
end
Но RSpec выдает мне эту ошибку:
An error occurred while loading ./spec/app/kay_nein/sites/twitter_spec.rb.
Failure/Error: subject = KayNein::Twitter.new(json_file)
`json_file` is not available on an example group (e.g. a `describe` or `context` block). It is only available from within individual examples (e.g. `it` blocks) or from constructs that run
in the scope of an example (e.g. `before`, `let`, etc).
# ./spec/app/kay_nein/sites/twitter_spec.rb:8:in `block (2 levels) in <top (required)>'
# ./spec/app/kay_nein/sites/twitter_spec.rb:7:in `block in <top (required)>'
# ./spec/app/kay_nein/sites/twitter_spec.rb:5:in `<top (required)>'
Что я делаю не так?
Даже это дает мне ошибку, так что это не имеет ничего общего с файлом:
RSpec.describe KayNein::Twitter do
let (:json_file) {"Hello world"}
context "Initialized" do
subject = KayNein::Twitter.new(json_file)
end
end