วันอาทิตย์ที่ 26 มีนาคม พ.ศ. 2560

Selenium pt.2

    ใน Tutorial บทที่ 1 จะไม่ค่อยมีอะไรมากแค่สอนวิธีการใช้ Django สร้าง project แล้วก็การรัน test อย่างง่ายๆ ซึ่งจะเป็น FT (functional test) เพราะฉะนั้นจะขอข้ามไปบทที่ 2 เลย

    ในบทนี้ก็จะเป็นการสอนการทำ function test ต่อ โดยโค้ดจะมีหน้าตาดังนี้

from selenium import webdriver
import unittest

class NewVisitorTest(unittest.TestCase):  #1

    def setUp(self):  #2
        self.browser = webdriver.Firefox()
        self.browser.implicitly_wait(3)


    def tearDown(self):  #3
        self.browser.quit()

    def test_can_start_a_list_and_retrieve_it_later(self):  #4
        # Edith has heard about a cool new online to-do app. She goes
        # to check out its homepage
        self.browser.get('http://localhost:8000')

        # She notices the page title and header mention to-do lists
        self.assertIn('To-Do', self.browser.title)  #5
        self.fail('Finish the test!')  #6

        # She is invited to enter a to-do item straight away
        #[...rest of comments as before]

if __name__ == '__main__':  #7
    unittest.main(warnings='ignore')  #8

โดย #1 มีการสืบทอด unittest

#2 จะเป็นการ set up โดยจะเปิดเป็น browser firefox

#3 เมื่อ test เสร็จก็จะออก browser ให้อัตโนมัติ

#4 พวก function หรือ method ที่ขึ้นตันด้วย test_ จะเป็นการ test ทั้งสิ้น

#5 โดยใน function นี้จะเรียก url localhost:8000 และก็จะเช็ค โดยใช้คำสั่ง assertIn(a,b) คือจะทำการเช็คว่ามี a อยู่ใน b หรือไม่

#6 เป็นการบังคับ fail แล้วให้ขึ้นข้อความว่า "Finish the test"

#7 & #8 ขอข้ามไปก่อนครับผม


Selenium pt.1

    ในการทดลองใช้ selenium SPN ได้เขียน keyword ลงใน Blog ของเขาซึ่งผมก็ได้ทำตาม tutorial ไปเรื่อยๆก็ได้พบกับคำเหล่านี้ เต็มไปหมด ซึ่งผมจะหาคำนิยามของ keyword เหล่านี้

- Functional test ( การรันทดสอบการทำงานของโปรแกรม จากมุมองของ user ที่ user สามารถเข้าถึงได้ )

- User story ( เป็นการที่ user จะใช้โปรแกรมทำอะไร แล้วผลที่โปรแกรมจะส่งกลับมาเป็นยังไง )

- Expected failure ( ในการเขียน test จะต้องมีการคาดว่า การกระทำใดจะทำให้ผล test fail ได้ )

- Unit test ( เป็นการทดสอบโปรแกรมแบบ ด้านในของโปรแกรม ในมุมมองของคนเขียนโปรแกรม )

- Refactoring ( การปรับปรุงโค้ด โดยจะไม่ทำให้การทำงานของโปรแกรมเปลี่ยนแปลงไป )

    




วันเสาร์ที่ 18 มีนาคม พ.ศ. 2560

Wiki

    ในช่วงเวลา 1 สัปดาห์ในการพักผ่อน ทางผมได้ทำจัด Tutorial สำหรับสร้าง web app ledger หรือบันทึกรายรับ รายจ่าย ไว้ใน link => https://github.com/a5810067/ledger/wiki ซึ่งถ้าหากผิดพลาดประการใด ก็ขออภัยไว้ ณ ที่นี้ด้วย