Вот моя текущая структура кода:
[Модель]
Код: Выделить всё
class UserInfo(SQLModel, table=True):
__tablename__ = 'user_info'
__table_args__ = {'schema': 'Auth'}
id: int | None = Field(default=None, primary_key=True)
name: str = Field(nullable=False)
username: str = Field(nullable=False)
email: str = Field(nullable=False)
role: str = Field(nullable=False)
tenant_id: int = Field(nullable=False)
activate: bool = Field(nullable=False)
Код: Выделить всё
def get_user_info_repository(tenant_id: str) -> list[UserInfo]:
with Session(engine) as session:
statement = select(UserInfo).where(UserInfo.tenant_id == tenant_id)
result = session.exec(statement)
return result.all()
Код: Выделить всё
def get_user_info_service(tenant_id: str) -> list[UserInfo]:
user_list = get_user_info_repository(tenant_id)
return user_list
Код: Выделить всё
class UserResponse(SQLModel):
username: str
name: str
email: str
role: str
tenant_id: str
activate: bool
class UserInfoResponse(SQLModel):
user_limit: int
users: list[UserResponse]
Код: Выделить всё
@app.get("/user_info", response_model=UserInfoResponse)
def user_info():
response = get_user_info_service("Test_Account")
return UserInfoResponse(users=response)
- Должен ли я писать модульные тесты для каждого уровня (контроллер, сервис, репозиторий) и макетировать их зависимости? Или достаточно просто протестировать уровень контроллера с помощью TestClient?
- Должны ли модульные тесты включать сценарии межуровневого тестирования или избегать их? (Например, следует ли мне тестировать контроллер+сервис вместе или всегда тестировать их отдельно?)
- Поскольку мой уровень сервиса просто передает данные без какой-либо бизнес-логики, следует ли мне писать модульный тестовый пример? за это?
Подробнее здесь: https://stackoverflow.com/questions/793 ... service-re
Мобильная версия