2009-07-10 4 views
1

Ich implementiere derzeit einen .NET-Wrapper für eine Java-Bibliothek, indem ich JNI verwende, um JavaVM zu starten und mit Java-Klassen zu interagieren. Um auf der sicheren Seite zu sein, hätte ich gerne Einheitentests für meinen Code.C#, C++/cli: Wie testen Sie eine Komponente, die nur einmal pro Prozess geladen werden kann

Das Problem, mit dem ich jetzt konfrontiert ist, ist, dass Sie die Java VM nur einmal pro Prozess starten können. Es gibt keine Möglichkeit, die JVM zu entladen.

Dies macht es ziemlich schwierig, Komponententests zu schreiben, die tatsächlich sauber sind.

Einige Spezifikationen: .NET/Java-Schnittstelle: done in C++/cli Unit-Tests lib: NUnit Code Testeinheit: C#

Irgendwelche Tipps?

Grüße, Dominik

+0

Laden der JVM Verwenden von JNI in einem C++/CLI-Projekt. Entweder Ihr gelangweilt oder Arbeiten an etwas sehr sehr interessant .... – Spence

+0

@Spence: Ich würde sagen, interessant! :) Es ist eigentlich ein Wrapper für eine sehr kleine API (5 Klassen) zu einer bestehenden Java-Bibliothek (die lib hat> 6000 LOC), die wir intern benutzen. Es war nicht wirklich eine Option, die Funktionalität neu zu schreiben und zwei Quellbäume beizubehalten. –

Antwort

1

Sie könnten eine Ad-hoc-Net-Test-Anwendung erstellen, die auf einem eigenen Prozess laufen würden.

Ihre NUnit-Tests würde somit diesen Prozess (auch in der Befehlszeile) starten, lassen Sie es tatsächlich die Tests ausführen, und den Wert als STD-Ausgabe zurückgeben. IOW, halten Sie es einfach und starten Sie viele Prozesse.

Verwandte Themen