Tôi đang tìm một công cụ Java có thể tạo anonymous variables (các biến có giá trị mà tôi không quan tâm) trong các thử nghiệm của tôi, tương tự như AutoFixture trong .Net. Đây là một liên kết đến AutoFixture's readme, trong đó có các ví dụ khá tốt về những gì nó làm.Có sự thay thế Java nào đối với AutoFixture của Ploeh cho .Net không?
Dưới đây là một ví dụ ngắn lấy từ cùng một readme:
[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
}
Có như vậy một công cụ trong thế giới Java?
Edit:
tôi đã cố gắng QuickCheck và trong khi nó cố gắng làm điều gì đó giống như những gì tôi đang tìm kiếm:
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());
}
}
}
Công cụ này dường như chỉ làm việc với giao diện. Nếu tôi thay đổi Kiểm tra thành một lớp và phương thức thành một trường, trình tạo phát ra một ngoại lệ chỉ có các giao diện được hỗ trợ.
Tôi chân thành hy vọng rằng có điều gì đó tốt hơn, đặc biệt là vì tài liệu bị thiếu nghiêm trọng.
Tôi luôn có một nụ cười lớn khi tôi tìm câu hỏi chính xác về SO. (Tôi biết bình luận không thêm nhiều giá trị ...) –