South Koreakeepcosmos/beanmother
A library for setting up Java objects as test data.
🧪 Beanmother: Tạo test data Java nhanh như trở buồn với fixture YAML
Beanmother là một thư viện Java giúp tạo các đối tượng (đơn giản và phức tạp) cho test một cách siêu dễ dàng thông qua fixture, khuyến khích viết nhiều test hơn.
Beanmother là một thư viện Java hỗ trợ thiết lập các đối tượng làm dữ liệu test bằng cách sử dụng fixture định dạng YAML. Đây là implement của ObjectMother pattern và cũng là công cụ thay thế fixture. Bạn không cần viết thêm bất kỳ mã nào (như factory hay builder) để tạo các đối tượng test. Beanmother giúp tạo ra các đối tượng bean tươi mới và ngẫu nhiên cho mỗi loại test.
✨ Điểm nổi bật
- Fixture YAML dễ đọc: Sử dụng YAML để định nghĩa fixture, hỗ trợ cú pháp trùng lặp và tham chiếu.
- Script faker: Tích hợp java-faker để tạo dữ liệu ngẫu nhiên thực tế như tên sách, ngày tháng, đoạn văn...
- Sequence số tuần tự: Tự động tạo số ID tuần tự toàn cục cho các đối tượng test.
- Hỗ trợ đa kiểu dữ liệu: Tích hợp các extension cho Java 8 time, Joda-time, Guava, builder pattern...
- Tùy biến linh hoạt: Hỗ trợ thêm fixture location từ classpath hoặc filesystem.
- Post processor: Cấu hình chung cho các bean cụ thể thông qua post processor.
- Hỗ trợ constructor có đối số: Sử dụng
_constructđể khởi tạo bean có constructor không mặc định.
💡 Vì sao đáng chú ý
Beanmother khác biệt so với các cách tạo test data truyền thống bằng cách loại bỏ hoàn toàn việc viết code factory hay builder. Chỉ với một file YAML định nghĩa fixture, bạn có thể tạo ra hàng trăm đối tượng test khác nhau với dữ liệu ngẫu nhiên nhưng hợp lệ. Điều này đặc biệt hữu ích trong TDD hoặc khi cần setup dữ liệu phức tạp cho integration test.
Thích hợp cho các dự án Java cần tạo nhiều test data và muốn giảm thiểu boilerplate code. Chỉ cần thêm dependency Maven/Gradle và vài dòng cấu hình là có thể bắt đầu sử dụng ngay.
#Java #Testing #Fixtures #YAML #TDD #TiniX
Similar Projects
Discover other similar projects and AI models.
Open-source platform for creating safe, isolated production sandboxes for API, integration, and E2E testing.
Testcontainers is a Java library that supports JUnit tests, providing lightweight, throwaway instances of common databases, Selenium web browsers, or anything else that can run in a Docker container.
Open-Source API Development Ecosystem • https://hoppscotch.io • Offline, On-Prem & Cloud • Web, Desktop & CLI • Open-Source Alternative to Postman, Insomnia