Я думаю, ваш код выглядит следующим образом.
class TodoApp
def initialize
@todos = []
end
def add(task, day, todo = Todo)
@todos.push(todo.new(task, day))
return "#{task} was added to your todos"
end
end
Это НЕ внедрение пустого массива в TodoApp.И, следовательно, вам будет трудно получить доступ к нему из тестов.
Но, если ваш объект TodoApp выглядел так:
class TodoApp
def initialize(todos = [])
@todos = todos
end
def add(task, day, todo = Todo)
@todos.push(todo.new(task, day))
return "#{task} was added to your todos"
end
end
Теперь вы вводите в TodoApp что-то, что может бытьиздевались или даже просто оценивали:
describe TodoApp do
subject(:app) { described_class.new(todos) }
let(:todos) { [] }
describe '#add' do
subject(:add) { app.add(task, day) }
let(:task) { 'task' }
let(:day) { 'day' }
it 'pushes the item on the list of todos' do
expect { add }.to change { todos.length }.by(1)
end
end
end