Ich versuche, einen Komponententest zu schreiben, der überprüft, ob eine KeyError
erstellt wird, wenn ein ungültiger Schlüssel an ein Wörterbuch übergeben wird.Testen für KeyError
Der Code, der die Ausnahme auslöst:
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
Ich habe gesucht und gefunden KeyError
Tests Lambda, aber ich habe nicht viel Glück gehabt. Hier ist der Test, den ich bisher habe, aber es ist fehlerhaft mit dem tatsächlichen 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])
Danke - das erklärt es perfekt! Aus irgendeinem Grund konnte ich die 'raises.exception.msg' nicht verwenden, stattdessen verwendete ich 'raises.exception [0]' und das gab mir das erwartete Ergebnis. – OpenDataAlex
@OpenDataAlex: Entschuldigung; Der Wert für 'exception.args [0]' wird auch als 'exception.message' angezeigt. Ich habe es einfach falsch geschrieben. –
Coole Bohnen - funktionierte wie ein Charme :) – OpenDataAlex