RepositoryJavaKRSouth Korea
keepcosmos

keepcosmos/beanmother

A library for setting up Java objects as test data.

122stars
25forks
7issues
0views

🧪 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.

RepositoryJava
mockito/mockito

Most popular Mocking framework for unit tests written in Java

15.5k
Oct 20, 2026
RepositoryGo
keploy/keploy

Open-source platform for creating safe, isolated production sandboxes for API, integration, and E2E testing.

18.7k
Oct 23, 2026
RepositoryJavaScript
wix/Detox

Gray box end-to-end testing and automation framework for mobile apps

12.0k
Oct 19, 2026
RepositoryRuby
thoughtbot/factory_bot

A library for setting up Ruby objects as test data.

8.2k
Oct 13, 2026
RepositoryJava
metersphere/metersphere

MeterSphere 是新一代的开源持续测试工具,内置 AI 助手,让软件测试工作更简单、更高效,不再成为持续交付的瓶颈。

13.6k
Sep 21, 2026
RepositoryJava
karatelabs/karate

Test Automation Made Simple

9.0k
Oct 20, 2026
RepositoryJava
testcontainers/testcontainers-java

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.

8.8k
Oct 18, 2026
RepositoryTypeScript
hoppscotch/hoppscotch

Open-Source API Development Ecosystem • https://hoppscotch.io • Offline, On-Prem & Cloud • Web, Desktop & CLI • Open-Source Alternative to Postman, Insomnia

80.7k
Oct 20, 2026
RepositoryGo
quii/learn-go-with-tests

Learn Go with test-driven development

23.9k
Oct 26, 2026