В моем unittest у меня есть 2 подсказки в тесте.Я пытаюсь использовать 2 @patch("builtins.input")
, но, похоже, он принимает только 1 из возвращаемых значений.
@patch("builtins.input")
@patch("builtins.input")
def test_setProfileName_modify_init_prompt_empty(self, paramName1, paramName2):
paramName1.return_value = self.profileName_prod
paramName2.return_value = self.profileName_dev
a = c.ALMConfig(self.configType)
self.assertTrue(a.setProfileName())
self.assertEqual(a.getProfileName(), self.profileName_dev)
self.assertEqual(a.profileName, self.profileName_dev)
self.assertTrue(a.setProfileName())
self.assertEqual(a.getProfileName(), self.profileName_prod)
self.assertEqual(a.profileName, self.profileName_prod)
Вызов a.setProfileName()
запросит 1 ввод с использованием вызова input()
в моей функции.,В этом тесте он будет вызывать a.setProfileName()
дважды.
- При первом вызове
a.setProfileName()
я введу значение self.profileName_prod
. - При втором вызовеэто, я бы ввел значение
self.profileName_dev
.
Но тест не пройден после второго случая a.setProfileName()
(от второго до последнего assertEqual
после второго вызова a.setProfileName()
).
self.assertEqual(a.getProfileName(), self.profileName_prod)
Причина сбоя в том, что a.getProfileName
возвращает значение для self.profileName_dev
вместо self.profileName_prod
.
Я протестировал свой код в python cli, чтобы сделатьубедитесь, что поведение правильное.
Любая обратная связь приветствуется.
Спасибо, ребята!