Category: Developer

งานพัฒนาระบบ, เขียนโปรแกรม

การเปลี่ยนแปลง Coded UI Test ใน Visual Studio 2019

Microsoft ได้ประกาศว่า Visual Studio 2019 จะเป็น Visual Studio รุ่นสุดท้ายที่มีฟังก์ชัน Coded UI test ทำไมถึงเลิกใช้ Coded UI Test Coded UI tests ถูกใช้งานสำหรับการทดสอบการทำงานแบบอัตโนมัติของ web apps และ desktop apps โดยที่ในช่วงหลายปีหลังมานี้ Open source UI testing tools เช่น Selenium และ Appium ที่มีแรงสนับสนุนจาก community ที่เข้มแข็งและกลายเป็นมาตราฐานกลาง ซึ่ง Coded UI…

แนวทางการเขียน Unit Tests ที่ดีสำหรับ C # (2)

ในบทความก่อนหน้า ได้พูดถึงการเลือก Testing framework ที่เหมาะสม การเขียน unit test โดยใช้แนวคิดแบบ “AAA” (Arrange, Acr, Assert) และการกำหนดชื่อ method ที่สื่อความหมายเข้าใจได้ง่าย Test Initialize & Cleanup เมื่อ unit tests ทำการทดสอบ methods ภายใน class ก็จำเป็นต้องสร้าง instance ของ class นั้นๆขึ้นมาก่อน ซึ่งจะเกิดขึ้นหลายๆครั้งใน unit test เพื่อประหยัดเวลาและทรัพยากรของระบบ เราสามารถใช้ [TestInitialize] attribute ของ…

แนวทางการเขียน Unit Tests ที่ดีสำหรับ C #

ในความคิดของผู้เขียน ผู้พัฒนาส่วนใหญ่มักไม่ชอบที่จะเขียน Unit testing บางคนอาจจะคิดว่ามันน่าเบื่อ หรือบางคนก็ไม่เห็นคุณค่าในการเขียน code เพื่อตรวจสอบการทำงานของ code อื่นๆ Unit testing คือแนวทางในการเขียน code เพื่อตรวจสอบว่าหน่วยการทำงานใน แอปพลิเคชันซอฟต์แวร์ ว่าทำงานตามที่ตั้งใจไว้หรือไม่ เช่น หากตั้งใจที่จะให้ตัวอักษรตัวแรกของคำเป็น พิมพ์ใหญ่ unit test จะต้องสามารถตรวจสอบว่าตัวอักษรตัวแรกเป็นตัวพิมพ์ใหญ่โดยไม่สนใจอักษรตัวอื่นๆ ข้อดีอย่างหนึ่งของการเขียน unit tests ใน C # คือ เราสามารถใช้ Test Explorer ใน Visual Studio เพื่อตรวจสอบว่าการทดสอบทั้งหมดผ่านหรือไม่ โดยที่ไม่ต้องกังวลว่าการเปลี่ยนแปลงล่าสุดที่เขียน จะทำให้ระบบทำงานไม่ได้หรือไม่ การเลือก Testing…

เขียน Unit test ทดสอบการทำงานกับฐานข้อมูลที่ใช้ Entity Framework Core

ในบทความนี้ จะนำเสนอการเขียน unit test เพื่อทดสอบการทำงานของ method ที่ใช้งาน Entity Framework Core ซึ่งตัว Entity Framework Core มาพร้อมความสามารถที่สามารถใช้งาน in-memory store ซึ่งสามารถใช้ในการทดสอบได้ หรือจะใช้ mock framework ในการทดสอบก็ได้ โดยในบทความนี้จะแสดงให้เห็นทั้งสองแนวทาง In Memory Database In Memory Database เป็นการสร้าง database จำลองขึ้นมาใช้บน memory แทนที่การใช้ database ตัวจริง ทำให้เราสามาถเขียน unit test โดยที่ไม่ไปกระทบกับ…

ข้อมูลใน DropdownList แรกจนถึง DropdownList สุดท้ายกับค่าที่เหลืออยู่ของเขา ด้วย LINQ

ในช่วงที่ผ่านมา ได้มีการพัฒนาระบบโดยมีการนำ LinQ มาใช้นิด ๆ หน่อย ๆ (มือใหม่หัดใช้ >< ) ซึ่งมีอยู่ฟังก์ชันนึงที่เกี่ยวกับ การ Bind ค่า DropdownList กรณีที่มี DropdownList หลาย ๆ ตัวและไม่อยากให้ค่าที่เคยเลือกจาก DropdownList ก่อนหน้าไปแสดงใน DropdownList ถัดไปอีก น่าสนใจทดลองใช้แล้วทำงานได้ดี ผู้เขียนจึงนำมาเขียนเพื่อไว้เตือนความจำ จะได้กลับมาอ่าน แนวคิดและวิธีการดังนี้ค่ะ ในขั้นตอนแรก สร้าง Data ที่ชื่อว่า MyList เก็บข้อมูล id และชื่อ เพื่อเตรียมเป็น DataSource สำหรับ Bind…

Crystal Report : Suppress การซ่อน/แสดง Section

ปกติแล้วการจัดรายงานใน Crystal Report จะมีการแบ่งเป็น 5 ส่วนดังนี้ค่ะ Report Header Section เป็นส่วนที่อยู่บนส่วนหัวรายงาน แสดงแค่หน้าแรกเพียงหน้าเดียวเท่านั้น Page Header Section เป็นส่วนที่แสดงต่อจากส่วน Report Header Section แสดงอยู่ทุกหน้า Details Section ส่วนแสดงรายละเอียดที่ต้องการ สามารถจัดกลุ่มข้อมูล แบ่งรายงานเป็น 2 ส่วนและอื่น ๆ ได้ Page Footer Section เป็นส่วนที่แสดงในรายงานทุกหน้าอยู่บนส่วนท้ายของรายงาน Report Footer Section เป็นส่วนที่อยู่ส่วนท้ายสุดของรายงานจะแสดงแค่หน้าสุดท้ายเท่านั้น ซึ่งในแต่ละ Section นั้นสามารถมี Section…

Crystal Report : Grid กับการจัดรูปแบบรายงาน

ปกติแล้วการจัดรายงานใน Crystal Report ตัวหน้ากระดาษหรือหน้าจอนั้น จะเป็นหน้ากระดาษสีขาวปกติ ทำให้การจัดข้อความที่มีระยะเยื้องนั้นจัดได้ค่อนข้างยาก ตรงกันรึยังนะ หรือยังไม่ตรง นี่คือ 1 ในปัญหาของผู้เขียนเช่นกัน 🤣 ดังนั้นวันนี้ ผู้เขียนจะมาแนะนำการตั้งค่า Grid เพื่อให้การขยับ Object ในรายงานของเราง่ายขึ้น ขั้นตอนดังนี้ค่ะ 1️⃣ คลิกขวาพื้นที่โล่ง ๆ เลือกเมนู “Design” 2️⃣ ต่อด้วยเมนู “Default Setting” 3️⃣ ใน Tab “Layout” สังเกตส่วนด้านขวาที่ชื่อว่า “Grid” 👀 จะพบ Checkbox “Show Grid” ให้…

Windows Terminal (1)

เบื่อ cmd ใช้ Windows Terminal แทนกันดีกว่า… ให้ดูรูปก่อน สวยงามตระการตา!!! บางคนใช้แล้วอาจจะมีความสุข เริ่มได้ เหมาะสำหรับ Windows 10 version 1909 ขึ้นไป ติดตั้ง Git ติดตั้ง Windows Terminal จาก Microsoft Store หรือ จาก Github ถ้าหากติดตั้งจาก Github ต้องติดตั้ง Desktop Bridge VC++ v14 Redistributable Package ด้วย และโปรแกรมจะไม่อัพเดตตัวเองต้องโหลดมาปรับรุ่นเองทุกครั้ง ระวัง!!! ติดตั้งแล้วเปิดใช้งานจะได้หน้าตาประมาณนี้…

[บันทึกกันลืม] แก้ปัญหา server certificate verification failed บน gitlabs

ปัญหาคือ: จะ git push จาก Linux/Ubuntu มาเก็บใน gitlabs ขององค์กร git push -u origin master แต่ติดปัญหาว่า fatal: unable to access ‘https://gitlab.xxx.xxx.xxxx/userid/repo.git/’: server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none วิธีแก้ปัญหา (แบบรีบ ๆ) git config –global http.sslVerify false ก็จะใช้งานได้แล้ว *** เออ “ก็ง่าย…