Próbuję napisać test jednostkowy, który weryfikuje, że KeyError
jest tworzony, gdy zły klucz jest przekazywany do słownika.Testowanie KeyError
Kod, który podnosi wyjątek:
connections = SettingsManager().get_connections()
try:
connection = connections[self.conn_name]
except Exception:
self.log.error("Connection %s does not exist, exiting." % conn_name)
self.log.error(sys.exc_info()[0])
raise
szukałem i znalazłem KeyError
testy przy użyciu lambda, ale ja nie miałem dużo szczęścia. Oto test, jaki do tej pory miałem, ale błędy w stosunku do rzeczywistego KeyError
.
def test_bad_connection(self):
#Testing to see if a non existant connection will fail gracefully.
records = [1, 2]
given_result = DataConnector("BadConnection").generate_data(self.table, records)
expected_result = "BadConnection"
self.assertRaises(KeyError, given_result[:1])
Dziękuję - to wyjaśnia to idealnie! Z jakiegoś powodu nie mogłem użyć "raises.exception.msg", zamiast tego użyłem "raises.exception [0]", co dało mi oczekiwany rezultat. – OpenDataAlex
@OpenDataAlex: przepraszam; wartość 'exception.args [0]' jest również widoczna jako 'exception.message'; Właśnie błędnie to napisałem. –
Fajna fasola - zadziałała jak urok :) – OpenDataAlex