Как проверить логику функции, но игнорировать вызовы метода? - PullRequest
1 голос
/ 07 июня 2019

Я пишу тест Rspec для существующего кода, в который я добавил некоторую логику, и хочу убедиться, что он работает правильно.Меня не волнуют возвращаемые значения, просто логика работает с объектом, который я передаю ему.Для простоты здесь приведен пример очень простой функции из класса, который я построил:

def function_I_want_to_test(thing)
  if thing > 0
    function_a(thing)
  else
    function_b(thing)
  end
end

function_a и function_b уже имеют специальные тесты, поэтому мне все равно, какой результатзначения есть, но и function_a, и function_b делают вызовы API, что, на мой взгляд, усложнит тест rspec для проверки только логики, содержащейся в function_I_want_to_test.

Я прошел через этостраница (https://blog.codeship.com/unit-testing-in-ruby/) обзор подхода модульного тестирования, и объяснения имеют смысл, но при попытке использовать allow и receive кажется, что функция все еще хочет быть вызванной, поэтому я предполагаю, что яЯ не использую функции правильно.

По сути, я хочу обработать свой код как таковой и заставить его возвращать что-то произвольное, чтобы он даже не вызывал функцию.

def function_I_want_to_test(thing)
  if thing > 0
    pp "a"
  else
    pp "b"
  end
end

Отмое исследование, похоже, что путь / ожидание - это путь, но я предполагаю, что не до конца понимаю концепцию.

Я думаю, что главный вопрос, который у меня есть, - как проходит мой тест rspec?знаете, как «переопределить» функции (function_a и function_b) при тестировании function_I_want_to_test?

Я знаю, что есть несколько похожих заданных вопросов, но они, похоже, не отвечают так, как я ожидал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...