Ai đó có thể chỉ cho tôi cách viết các bài kiểm tra đơn vị cho mô hình sqlalchemy mà tôi đã tạo bằng mũi.Tôi cần một mẫu thử nghiệm đơn vị python mô hình sqlalchemy với mũi
Tôi chỉ cần một ví dụ đơn giản.
Cảm ơn.
Ai đó có thể chỉ cho tôi cách viết các bài kiểm tra đơn vị cho mô hình sqlalchemy mà tôi đã tạo bằng mũi.Tôi cần một mẫu thử nghiệm đơn vị python mô hình sqlalchemy với mũi
Tôi chỉ cần một ví dụ đơn giản.
Cảm ơn.
Bạn chỉ cần tạo một cơ sở dữ liệu SQLite trong bộ nhớ và liên kết phiên của bạn với cơ sở dữ liệu đó.
Ví dụ:
from db import session # probably a contextbound sessionmaker
from db import model
from sqlalchemy import create_engine
def setup():
engine = create_engine('sqlite:///:memory:')
session.configure(bind=engine)
# You probably need to create some tables and
# load some test data, do so here.
# To create tables, you typically do:
model.metadata.create_all(engine)
def teardown():
session.remove()
def test_something():
instances = session.query(model.SomeObj).all()
eq_(0, len(instances))
session.add(model.SomeObj())
session.flush()
# ...
Câu trả lời hay! Tôi nghĩ rằng bạn cần phải gọi 'create_all' trên đối tượng MetaData để thực sự tạo ra các bảng. Ngoài ra, nếu các kiểu dữ liệu cụ thể của nhà cung cấp db được sử dụng, thì một số DDL có thể không chạy. – van
Điểm tốt. Tôi đã cập nhật ví dụ để hiển thị cuộc gọi đến create_all. – codeape
Đây là một câu trả lời khủng khiếp nếu SQLLite không phải là cơ sở dữ liệu sản xuất của bạn. Không bao giờ thử nghiệm với một cơ sở dữ liệu khác với cơ sở dữ liệu bạn đang sử dụng trong sản xuất. Họ sẽ có rất nhiều sự khác biệt và bạn đang đặt mình vào một thảm họa. –
Kiểm tra các dự án fixture. Chúng tôi đã sử dụng mũi để kiểm tra điều đó và đó cũng là một cách để khai báo dữ liệu để kiểm tra ngược lại, sẽ có một số ví dụ mở rộng để bạn sử dụng ở đó!
Xem thêm fixture documentation.
Cụ thể hơn: bạn có cần trợ giúp về cách thiết lập mũi không? hoặc làm thế nào để kiểm tra một mô hình? – van