Ich bin auf der Suche nach einem Java-Tool, das anonymous variables (Variablen, deren Wert ich interessiere nicht) in meinen Tests, ähnlich wie AutoFixture in .Net erstellen würde. Hier ist ein Link zu AutoFixture's readme, der ziemlich gute Beispiele dafür hat, was es tut.Gibt es eine Java-Alternative zu Ploehs AutoFixture für .Net?
ist hier ein kurzes Beispiel aus dem gleichen readme genommen:
[TestMethod]
public void IntroductoryTest()
{
// Fixture setup
Fixture fixture = new Fixture();
int expectedNumber = fixture.CreateAnonymous<int>();
MyClass sut = fixture.CreateAnonymous<MyClass>();
// Exercise system
int result = sut.Echo(expectedNumber);
// Verify outcome
Assert.AreEqual<int>(expectedNumber, result, "Echo");
// Teardown
}
Gibt es ein solches Werkzeug in der Java-Welt?
Edit:
Ich habe versucht, Quick Check und während es so etwas wie zu tun geschafft, was ich suchte:
import net.java.quickcheck.Generator;
import net.java.quickcheck.generator.PrimitiveGenerators;
import net.java.quickcheck.generator.support.ObjectGeneratorImpl;
public class Main {
interface Test{
String getTestValue();
}
public static void main(String[] args) {
Generator<String> stringGen = PrimitiveGenerators.strings(5, 100);
Generator<Integer> intGen = PrimitiveGenerators.integers(5, 20);
ObjectGeneratorImpl<Test> g = new ObjectGeneratorImpl<>(Test.class);
g.on(g.getRecorder().getTestValue()).returns(stringGen);
for (int i = 0; i < intGen.next(); i++) {
System.out.println("value of testValue is: " + g.next().getTestValue());
}
}
}
Das Tool scheint nur mit Schnittstellen zu arbeiten. Wenn ich Test zu einer Klasse und die Methode zu einem Feld ändere, löst der Generator eine Ausnahme aus, die nur Schnittstellen unterstützt.
Ich hoffe aufrichtig, dass es etwas besseres gibt, vor allem, weil die Dokumentation ernsthaft fehlt.
Ich habe immer ein großes Lächeln, wenn ich meine genaue Frage zu SO finde. (Ich weiß, dass der Kommentar nicht viel Wert hinzufügen ...) –