Django autofixture

Giới thiệu

Tạo dữ liệu mẫu là việc rất cần thiết trong khi develop một project có sử dụng cơ sở dữ liệu. Nó giúp ta kiểm tra sự chính xác của các đoạn code tương tác với cơ sở dữ liệu. Tạo dữ liệu mẫu với số lượng lớn giúp ta có thể test hiệu năng của hệ thống, từ đó thực hiện tối ưu các query đến database.

django-autofixture là một django app dùng để tạo ra các dữ liệu mẫu cho ứng dụng của bạn một cách dễ dàng và nhanh chóng.
Nó có thể load dữ liệu test vào db qua command line hoặc sử dụng để tạo dữ liệu mẫu cho unittests.

Cài đặt

Thêm django-autofixture vào INSTALLED_APPS setting

Sử dụng Management command

Load test data vào database theo cú pháp:

Dựa vào thông tin mà ta đã khai báo trong models django-autofixture sẽ tự động tạo ra các dữ liệu mẫu phù hợp

Ví dụ:

Ta sẽ có ngay 3 Category và 20 Entry trong database.

Sử dụng autofixtures cho unittests

Ví dụ chúng ta có model tên là Entry. Để tạo 10 hàng dữ liệu mẫu cho nó ta làm như sau:

Custom autofixtures

Mặc định autofixtures sẽ dựa vào thông tin của Model để tạo các dữ liệu mẫu. Ta có thể custom lại các tạo dữ liệu mẫu cho các field bằng cách khai báo subclass AutoFixture ở file myapp/autofixtures.py
Ví dụ:

Khi đó khi gọi câu lệnh loadtestdata nó sẽ tự động sử dụng custom fixtures này.
Trong unittests:

Mặc định autofixtures cung cấp sẵn nhiều class generators cho chúng ta ví dụ như:

– StaticGenerator
– CallableGenerator
– NoneGenerator
– SlugGenerator
– FirstNameGenerator
– …

Ta cũng có thể tự tạo ra các generators cho phù hợp bằng cách tạo subclass Generator và overrides method generate.
Ví dụ tạo một phone generators:

Bạn có thể tham khảo một số generators mà tôi đã tạo tại đây:
https://github.com/cuongnb14/cookbook/blob/master/python/django/django-autofixture/generators.py

Tham khảo: https://github.com/gregmuellegger/django-autofixture

The following two tabs change content below.

Latest posts by Cuong Nguyen (see all)