رفتن به محتوای اصلی
برنامه‌سازی پیشرفته با پایتون درس‌نامهٔ آزاد
مثال مقدماتی ۱۰ دقیقه

شمارندهٔ کلیک با منطق جدا

دکمه‌ای که با هر کلیک شمارنده را یکی زیاد می‌کند؛ منطق را طوری بنویس که بدون GUI هم تست شود.

صورت مسئله

دکمه‌ای که با هر کلیک شمارنده را یکی زیاد می‌کند؛ منطق را طوری بنویس که بدون GUI هم تست شود.

مثال حل‌شده

شمارنده

مقدماتی

صورت مسئله

سه کلیک → نمایش «۳». کدام بخش را unittest می‌کند و کدام را چشم؟

راه‌حل گام‌به‌گام

    ۴ گام باقی مانده
    # logic.py
    class Counter:
        def __init__(self):
            self.value = 0
        def increment(self):
            self.value += 1
            return self.value
    
    # test_logic.py
    import unittest
    class TestCounter(unittest.TestCase):
        def test_three_clicks(self):
            c = Counter()
            for _ in range(3):
                c.increment()
            self.assertEqual(c.value, 3)
    
    # gui_app.py (اجرا در محیط گرافیکی)
    import tkinter as tk
    counter = Counter()
    root = tk.Tk()
    label = tk.Label(root, text="۰")
    label.pack()
    def on_click():
        label.config(text=str(counter.increment()))
    tk.Button(root, text="بشمار", command=on_click).pack()
    root.mainloop()

    مطالب مرتبط

    از همین بخش و با برچسب‌های مشترک

    این مطلب را خواندید؟ آن را علامت بزنید تا پیشرفت شما روی همین دستگاه ذخیره شود.

    وضعیت پیشرفت برای شمارندهٔ کلیک با منطق جدا