Если вы хотите использовать преимущества хеша, предоставляемого Rspec, лучше проанализировать тело и сравнить с хешем. Самый простой способ, который я нашел:

я есть следующий код в моем контроллере:

format.json { render :json => { 
        :flashcard  => @flashcard,
        :lesson     => @lesson,
        :success    => true
} 

В моем тесте контроллера RSpec я хочу убедиться, что определенный сценарий действительно получил ответ json, поэтому у меня была следующая строка:

controller.should_receive(:render).with(hash_including(:success => true))

Хотя, когда я запускаю свои тесты, я получаю следующую ошибку:

Failure/Error: controller.should_receive(:render).with(hash_including(:success => false))
 (#<AnnoController:0x00000002de0560>).render(hash_including(:success=>false))
     expected: 1 time
     received: 0 times

Я неправильно проверяю ответ?

Ответы на вопрос(11)

Ваш ответ на вопрос