Einer meiner Attribute ist eine Eigenschaft, wo die Setter eine Validierungsfunktion aufruft, die eine Ausnahme auslöst, wenn der neue Wert ist ungültig:Testing Ausfall einer Zuweisung mit Unittest
pos.offset = 0
# @offset.setter calls validate(offset=0)
# PositionError: Offset may not be 0.
Ich versuche, einen Test hinzufügen um sicherzustellen, dass dies fehlschlägt. Ich kann jedoch nicht herausfinden, wie man Assets dazu bringen kann, mit einer Aufgabe zu arbeiten.
Die normale Syntax von assertRaises erfordert eine Methode, kein Attribut/Eigenschaft:
self.assertRaises(PositionError, pos.offset, 0)
# TypeError: 'int' object is not callable
Die anderen Formen habe ich versucht, sind ungültig Python:
self.assertRaises(PositionError, pos.offset = 0)
# SyntaxError: Keyword can't be an expression
self.assertRaises(PositionError, lambda: pos.offset = 0)
# SyntaxError: lambda cannot contain assignment
Wie kann ich Ausfall testen der Zuordnung zu einer Immobilie?
Hinweis: Python 2.6, weiß ich Unittest in 2,7
Ja, ich stimme zu, das ist klarer für 2.7+ – Lenna