🐍 آموزش Python | پست ۲۶۵
استفاده از
در پایتون میتوانیم با استفاده از
اما هنگام تست چنین ویژگیهایی، گاهی لازم است مقدار آنها را بدون اجرای منطق اصلی کنترل کنیم.
برای این کار از
۱. یک کلاس با Property
استفاده از این ویژگی:
خروجی:
۲. جایگزینی Property با PropertyMock
خروجی:
در این مثال، مقدار Property بهصورت موقت تغییر کرده است؛ بدون اینکه کد اصلی آن اجرا شود.
۳. بررسی تعداد دسترسی به Property
با
خروجی:
نکته مهم
همچنین برای تغییر مقدار Property از
🎯 تمرین
کلاسی به نام
سپس با
پست ۲۶۵ از دوره جامع Python 🐍
استفاده از
PropertyMock برای تست Propertyهادر پایتون میتوانیم با استفاده از
@property، متدها را مانند ویژگیهای معمولی فراخوانی کنیم.اما هنگام تست چنین ویژگیهایی، گاهی لازم است مقدار آنها را بدون اجرای منطق اصلی کنترل کنیم.
برای این کار از
PropertyMock در کتابخانه unittest.mock استفاده میکنیم.۱. یک کلاس با Property
class Product:
@property
def price(self):
return 500
استفاده از این ویژگی:
product = Product()
print(product.price)
خروجی:
500
۲. جایگزینی Property با PropertyMock
from unittest.mock import PropertyMock, patch
class Product:
@property
def price(self):
return 500
product = Product()
with patch.object(
Product,
"price",
new_callable=PropertyMock
) as mock_price:
mock_price.return_value = 1000
print(product.price)
خروجی:
1000
در این مثال، مقدار Property بهصورت موقت تغییر کرده است؛ بدون اینکه کد اصلی آن اجرا شود.
۳. بررسی تعداد دسترسی به Property
با
PropertyMock میتوانیم بررسی کنیم که یک ویژگی چند بار خوانده شده است:from unittest.mock import PropertyMock, patch
class User:
@property
def name(self):
return "Ali"
with patch.object(
User,
"name",
new_callable=PropertyMock
) as mock_name:
mock_name.return_value = "Test"
user = User()
print(user.name)
print(user.name)
mock_name.assert_called_with()
print(mock_name.call_count)
خروجی:
Test
Test
2
نکته مهم
PropertyMock باید روی کلاس یا شیءای قرار بگیرد که Property از آن تعریف شده است. در مثال بالا، آن را روی کلاس User قرار دادیم.همچنین برای تغییر مقدار Property از
mock_name.return_value و برای بررسی مقداردهی آن میتوان از mock_name.assert_called_once_with(value) استفاده کرد.🎯 تمرین
کلاسی به نام
Account بسازید که یک Property به نام balance داشته باشد و مقدار اصلی آن 2000 باشد.سپس با
PropertyMock مقدار آن را در تست به 5000 تغییر دهید و بررسی کنید که مقدار اصلی پس از پایان Patch دوباره قابلدسترسی باشد.پست ۲۶۵ از دوره جامع Python 🐍
👍1
🇮🇷 ۱۳ آبان | روز دانشآموز و روز مبارزه با استکبار جهانی
۱۳ آبان، یادآور روزهایی است که دانشآموزان و دانشجویان ایرانی برای استقلال، آزادی و آینده کشورشان ایستادگی کردند.
این روز فرصتی است برای یادآوری اهمیت آگاهی، علم، تفکر و تلاش نسل جوان در ساختن آیندهای بهتر.
ما باور داریم که قدرت واقعی یک ملت، در دانش، آگاهی و توانایی ساختن آن نهفته است.
بیایید با یادگیری، خلاقیت و پیشرفت علمی، سهمی در ساختن آینده داشته باشیم.
🌱 آینده را کسانی میسازند که امروز برای یادگرفتن تلاش میکنند.
🇮🇷 روز دانشآموز گرامی باد.
۱۳ آبان، یادآور روزهایی است که دانشآموزان و دانشجویان ایرانی برای استقلال، آزادی و آینده کشورشان ایستادگی کردند.
این روز فرصتی است برای یادآوری اهمیت آگاهی، علم، تفکر و تلاش نسل جوان در ساختن آیندهای بهتر.
ما باور داریم که قدرت واقعی یک ملت، در دانش، آگاهی و توانایی ساختن آن نهفته است.
بیایید با یادگیری، خلاقیت و پیشرفت علمی، سهمی در ساختن آینده داشته باشیم.
🌱 آینده را کسانی میسازند که امروز برای یادگرفتن تلاش میکنند.
🇮🇷 روز دانشآموز گرامی باد.
👍1👎1