Ich habe eine Klasse Currency
, die ich mit NHibernate in meiner Datenbank persistiere. Currency
class sieht so aus:
Ich habe einen Komponententest mit [TestCase]
wie folgt geschrieben:
Ich weiß, das ist falsch, aber ich weiß nicht, wie ich es schreiben soll. Kann das Ergebnis ein object
sein?
Attributargument (für Result
) muss ein konstanter Ausdruck sein. Sie können keine Objekte wie jetzt erstellen.
Die Verwendung des Attributs TestCase
eignet sich gut zum Testen von Fällen, in denen Sie mehrere einfache Eingaben / Ausgaben überprüfen müssen. In Ihrem Szenario können Sie jedoch so etwas tun (das heißt, wenn Sie nur überprüfen möchten, ob die ID-Code-Zuordnung korrekt ist):
Sehen Sie sich auch TestCase
documentation an - sie bieten ziemlich gute Beispiele.
Bearbeiten : Mit Zuordnungstests wollte ich überprüfen, ob Ihre ORM-Mappings (NHibernate to Database) korrekt sind und wie gewünscht funktionieren. Normalerweise testen Sie das im folgenden Szenario:
Currency
) Save
+ Flush
+ Evict
, um sicherzustellen, dass NHibernate die gespeicherte Entity nicht mehr im Cache speichert) Wenn ein solcher Test dann bestanden wird, sagt er mehr oder weniger, dass ich diese Entity mit diesen Werten speichern kann und sie dann mit genau den gleichen Werten abrufen kann . Und das ist alles, was Sie wissen wollten - Abbildungen sind korrekt.
Mit TestCase
attribut tho ist die Überprüfung der Korrektheit ganzer Objekte ziemlich schwierig - es soll einfache Dinge testen. Sie können Workarounds wie in anderen Antworten vorgeschlagen verwenden (Argumente über TestCase
übergeben), aber es wird schnell unlesbar und schwer zu pflegen (Stellen Sie sich Entität mit 6+ zu überprüfenden Eigenschaften vor).
Ich schlage vor, Ihren Test in einen zu teilen, der überprüft, ob die Zuordnung von id
zu code
korrekt ist (allerdings sehe ich wenig Sinn, es sei denn, Sie möchten immer bestimmte IDs zuordnen) zu bestimmten Codes) und andere zu überprüfen, ob Currency
-Entität richtig auf die Datenbanktabelle zugeordnet ist.
In solchen Fällen übergebe ich Konstruktorargumente für das erwartete Ergebnis in den Testfall und führe die Überprüfung selbst durch. Obwohl es nicht so prägnant ist, wird es erledigt.
%Vor%Tags und Links c# unit-testing nunit testcase