Category: Developer

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

ปัญหาการ Debug บางคำสั่งใน .NET Web Project (VS.NET 2013)

ในการพัฒนา web application ด้วย Visual Studio.NET 2013 ผู้พัฒนาบางท่าน อาจจะเคยเจอปัญหาเมื่อ debug ไปถึงบางคำสั่งแล้ว คำสั่งไม่ทำงานตามที่ควรจะเป็น หรือบางครั้งก็ไม่มีการ return ค่าออกมา ทั้ง ๆ ที่ค่าของข้อมูลถูกต้อง ซึ่งหากเจอปัญหานี้แล้ว ให้ลองสังเกตดังต่อไปนี้ เครื่องที่ใช้พัฒนาเป็น Windows 32 bit หรือ 64 bit ตรวจสอบแน่ใจแล้วว่าใช้งานคำสั่งได้ถูกต้อง และข้อมูลที่คำสั่งนี้นำไปประมวลผลมีความถูกต้องแล้ว ถ้าเครื่องที่ใช้เป็น Windows 64 bit ให้ทดลองทำตามดังนี้ คือ ไปที่เมนู TOOLS –> Options จะปรากฏหน้าต่าง…

การเรียกใช้งาน constructor จากอีก constructor ใน C#.NET

constructor คืออะไร constructor ก็คือ ฟังก์ชันที่ถูกเรียกใช้งาน เมื่อ object ถูกสร้างขึ้นมา ซึ่งใน C#.NET  ก็คือฟังก์ชันที่ตั้งชื่อเป็นชื่อเดียวกับชื่อ class นั่นเอง   constructor มีประโยชน์อย่างไร ในการสร้าง object ขึ้นมา บางครั้งต้องมีการระบุค่าเริ่มต้นบางอย่างให้กับ object นั้น ซึ่ง constructor ก็จะเป็นเครื่องมือหนึ่งที่เป็นตัวช่วยบังคับให้ต้องระบุค่าเริ่มต้นนี้ตอนสร้าง object นั่นเอง   ยกตัวอย่าง เช่น class Student { public Student(string studentID) { คำสั่งดึงข้อมูลนักศึกษาด้วย Student ID โดยใช้ข้อมูล Student ID…

Puppeteer ควบคุมและบันทึกการใช้งาน chrome สำหรับ UI testing

Puppeteer เป็น Node library ที่มีชุดของ API สำหรับการควบคุม Google Chrome หรือ Chromium ผ่าน DevTool protocol ทำงานในรูปแบบ headless โดย default แต่สามารถกำหนดให้ทำงานแบบ full (non-headless) Chrome ได้  ที่สำคัญไม่ต้องทำงานผ่าน Web Driver อีกต่อไป puppeteer สามารถทำงานได้ทุกอย่างที่สามารถทำได้โดย manual บน browser เช่น สร้าง screenshots และ PDFs ของ page Automate…

Visual test automation : Appraise test page

จากบทความ Visual test automation ที่ได้กล่าวถึง Appraise ที่ใช้สำหรับทำการทดสอบการแสดงผลแบบอัตโนมัติในเบื้องต้น ตั้งแต่การติดตั้ง ตัวอย่าง test page, test fixture การเรียกใช้งานการทดสอบ และผลการทดสอบ บทความนี้จะมาลงรายละเอียดในการสร้าง test page Creating test pages Appraise สามารถกำหนดรูปแบบข้อกำหนดการทดสอบสำหรับการทดสอบส่วนแสดงผลได้ไม่ยุ่งยาก โดย Appraise จะทำการอ่านข้อมูลนำเข้า และ ผลลัพธ์ที่คาดหวัง จาก file ที่เขียนในรูปแบบ Markdown แล้วส่งต่อให้กับระบบทำการทดสอบ จากนั้นจะบันทึกภาพการแสดงผลที่เกิดขึ้น เปรียบเทียบภาพการแสดงผลที่ได้จริงกับผลลัพธ์ที่คาดหวัง โดยมีสิ่งที่จำเป็นที่จะต้องกำหนดสำหรับการทดสอบ 3 ส่วน คือ input expect output…

Stencil : Decorators

Component Decorator แต่ละ Stencil component จะต้องขึ้นต้นด้วย @Component() decorator เสมอ โดย import มาจาก @stencil.core package ซึ่งภายใต้ @Component() decorator สามารถกำหนด tag name และ styleUrl ของ component import { Component } from ‘@stencil/core’; @Component({ tag: ‘todo-list’, styleUrl: ‘todo-list.scss’ }) export class TodoList { … }…