我正在寻找一个Java工具,它会在我的测试中创建anonymous variables(我不关心的值),类似于.Net中的AutoFixture。这里是AutoFixture's readme的链接,它有很好的例子。有没有Java替代Ploeh的AutoFixture for .Net?
下面是来自同一自述采取了简单的例子:
[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
}
是否有在Java世界中这样的工具?
编辑:
我想快速检查,虽然它成功地这样做什么,我一直在寻找:
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());
}
}
}
该工具似乎只与接口工作。如果我将Test更改为类并将方法更改为字段,则生成器将引发一个仅支持接口的异常。
我真诚地希望有更好的东西,特别是因为文档严重缺乏。
当我在SO上找到我确切的问题时,我总是有一个灿烂的笑容。 (我知道评论没有增加太多的价值...) – 2015-12-19 12:31:13