Я пишу UnitTests в Python с использованием assertEqual
:Сделать assertEqual не преминуло на RuntimeErrors, начиная с определенной строкой
def test_SetOwner(self, owner):
self.objectid.SetOwner(owner)
self.assertEqual(self.objectid.GetOwner(), owner)
Это работает в большинстве случаев, но в некоторых конкретных случаях это не удается с RuntimeError
начиная с Could not execute...
, Однако ожидается, что en не должно вызывать ошибку в пакете unittest.
Есть ли способ каким-то образом сделать assertEqual
не сбой на RuntimeErrors, начиная с этой конкретной строки, все еще захватывая все остальные RuntimeErrors? Или есть лучший способ справиться с этим?
Не могли бы вы его обернуть в блок 'try:'/'except RuntimeError как exc:', а затем передать или ререйз в зависимости от 'exc.args'? – DSM
Почему ваш единичный тест недетерминирован? Да, вы можете поймать RuntimeError, а затем проверить 'e.args [0]' для нужной строки, но в целом, модульные тесты должны проходить через очень специфический сценарий, чтобы проверить результат части кода и иметь единичный тест позволяет два * очень * разных поведения, кажется мне, как запах кода. – tom