Tôi có một người trang trí và tôi muốn khẳng định rằng một số phương pháp nhất định trong mã của tôi được trang trí với nó.Làm thế nào để khẳng định rằng một phương pháp được trang trí với python unittest?
import functools
def decorator(func):
def _check_something(*args, **kwargs):
# some logic in here
return func(*args, **kwargs)
return functools.wraps(func)(_check_something)
class MyClass(object):
@decorator
def my_method(foo, bar):
pass
Làm thế nào để khẳng định với unittest (unitttest2) mà my_method
có @decorator
và không ai lấy nó, và nó đã không bị lãng quên?
làm một số kiểm tra đó kiểm tra xem chức năng (nó không được gọi là một "phương pháp" trong Python, btw) có hành vi đúng, nâng cao ngoại lệ chính xác, v.v. Nếu có, mọi thứ đều ổn. –
đã cập nhật ví dụ để có phương pháp thực thay vì chỉ là một hàm mô-đun dangling. – Evgeny
Với các bài kiểm tra đơn vị, bạn chỉ kiểm tra xem hàm có thực hiện đúng hay không. Toàn bộ vấn đề này là mọi người có thể cấu trúc lại việc triển khai thực tế như họ muốn, miễn là họ không phá vỡ chức năng. Những gì bạn đang cố gắng làm không có gì để làm với thử nghiệm đơn vị. –