محمد افاضاتی

دیده ها، شنیده ها و علاقه مندی های یک برنامه نویس
دوشنبه, ۱۷ مهر ۱۳۹۱، ۰۳:۱۸ ب.ظ

تست و دیباگ در جاوا اسکریپت

یکی از مهمترین قسمت‌های طراحی فاز test و debug است. اینکه روند اصلی کد در همه جا درست اجرا می شود؟ اینکه کلاً منطقی کد درستی نوشته اید؟ البته خیلی از javascript developer ها اینکار را نمی‌کنند و کار را خلاصه به console می‌کنند ولی آیا روش درستیست؟ نمی‌شود مطلقاً به این کار خرده گرفت ولی در نظر گرفتن چند نکته ضروریست
کدی که قابلیت test دارد با کد معمولی متفاوت است. برای اینکه قابل تست باشید تا جای ممکن نباید چیز جدید در end method ها استفاده کنید و همه چیز را از کسی که شما را call کرده‌اید بگیرید ولی معمولاً کد ها اینگونه نیست برای همین هنگام debug کردن اینکه کار کجا خراب شده است سختر می شود.


Unit Test
کتابخانه‌های زیادی برای طراحی unit test وجود دارد. شما با mock کردن قسمت‌های خارجی می‌توانید فقط یک function را تست کنید. البته اگر انتظارات زیادی نداشته باشید در level های خیلی ساده می‌توانید خودتان یک سیستم بسازید

Assertions
شما با این روش می‌توانید مطمئن شوید چیزی که نوشتید واقعاً همین نتیجه را دارد؟

var assert = function(value, msg) {
   if ( !value )
      throw(msg || (value + " does not equal true"));
   };


به راحتی یک ابزار assert ساختیم و با استفاده از این می‌توانید چک کنید واقعاً دو چیز برابر است یا وجود دارد؟


نمونه‌ای از ابزار های موجود


این کتابخانه بیشتر ابزار ها مثل mock و assert و … را دارند.
به طور مثال شما در کتابخانه jasmine اینگونه می تونید assert داشته باشید

describe("A suite", function() {
  it("contains spec with an expectation", function() {
    expect(true).toBe(true);
  });
});


Debuging
برای debug هم ابزار های مهمی وجود دارد که شما با استفاده از آن‌ها می‌توانید راحت‌تر debug کنید
یکی از مهمترین این ابزار ها firebug است. شما با استفاده از console که در javascript در هنگام باز بودن firebug دارید می‌توانید همه چیز را log کنید.
شما دستورات زیر را دارید.

// show your code with variable
console.log("The %s jumped over %d tall buildings", animal, count);
console.warn("test")
console.info("test")
console.debug("test")
console.error("test")


همچنین اعمالی چون profiling و … یا ایجاد break point را می‌توانید انجام دهید. همچنین استفاده از console ضروریست.

در کل برای استفاده از firebug حتماً راهنمایش باید مطالعه شود تا استفاده مفید تری داشته باشید.
استفاده از ابزارهای دیگر هم مفید است مثل


debug-js - The JavaScript debugger in JavaScript. - Google Project Hosting -> http://code.google.com/p/debug-js/

 

همچنین ببینید:


 



نوشته شده توسط محمد افاضاتی
ساخت وبلاگ در بلاگ بیان، رسانه متخصصان و اهل قلم

محمد افاضاتی

دیده ها، شنیده ها و علاقه مندی های یک برنامه نویس
محمد افاضاتی
محمد افاضاتی برنامه نویس python php دیتابیس های postgresql mongodb و ...

رونوشتی از علاقه مندی هایم برای ماندگار تر شدن!

تبلیغات

طبقه بندی موضوعی

Feedburner RSS

Others

توییتر

تست و دیباگ در جاوا اسکریپت

دوشنبه, ۱۷ مهر ۱۳۹۱، ۰۳:۱۸ ب.ظ

یکی از مهمترین قسمت‌های طراحی فاز test و debug است. اینکه روند اصلی کد در همه جا درست اجرا می شود؟ اینکه کلاً منطقی کد درستی نوشته اید؟ البته خیلی از javascript developer ها اینکار را نمی‌کنند و کار را خلاصه به console می‌کنند ولی آیا روش درستیست؟ نمی‌شود مطلقاً به این کار خرده گرفت ولی در نظر گرفتن چند نکته ضروریست
کدی که قابلیت test دارد با کد معمولی متفاوت است. برای اینکه قابل تست باشید تا جای ممکن نباید چیز جدید در end method ها استفاده کنید و همه چیز را از کسی که شما را call کرده‌اید بگیرید ولی معمولاً کد ها اینگونه نیست برای همین هنگام debug کردن اینکه کار کجا خراب شده است سختر می شود.


Unit Test
کتابخانه‌های زیادی برای طراحی unit test وجود دارد. شما با mock کردن قسمت‌های خارجی می‌توانید فقط یک function را تست کنید. البته اگر انتظارات زیادی نداشته باشید در level های خیلی ساده می‌توانید خودتان یک سیستم بسازید

Assertions
شما با این روش می‌توانید مطمئن شوید چیزی که نوشتید واقعاً همین نتیجه را دارد؟

var assert = function(value, msg) {
   if ( !value )
      throw(msg || (value + " does not equal true"));
   };


به راحتی یک ابزار assert ساختیم و با استفاده از این می‌توانید چک کنید واقعاً دو چیز برابر است یا وجود دارد؟


نمونه‌ای از ابزار های موجود


این کتابخانه بیشتر ابزار ها مثل mock و assert و … را دارند.
به طور مثال شما در کتابخانه jasmine اینگونه می تونید assert داشته باشید

describe("A suite", function() {
  it("contains spec with an expectation", function() {
    expect(true).toBe(true);
  });
});


Debuging
برای debug هم ابزار های مهمی وجود دارد که شما با استفاده از آن‌ها می‌توانید راحت‌تر debug کنید
یکی از مهمترین این ابزار ها firebug است. شما با استفاده از console که در javascript در هنگام باز بودن firebug دارید می‌توانید همه چیز را log کنید.
شما دستورات زیر را دارید.

// show your code with variable
console.log("The %s jumped over %d tall buildings", animal, count);
console.warn("test")
console.info("test")
console.debug("test")
console.error("test")


همچنین اعمالی چون profiling و … یا ایجاد break point را می‌توانید انجام دهید. همچنین استفاده از console ضروریست.

در کل برای استفاده از firebug حتماً راهنمایش باید مطالعه شود تا استفاده مفید تری داشته باشید.
استفاده از ابزارهای دیگر هم مفید است مثل


debug-js - The JavaScript debugger in JavaScript. - Google Project Hosting -> http://code.google.com/p/debug-js/

 

همچنین ببینید:


 

نظرات  (۱)

فکر میکنم از بین ابزارهای مختلف جاسمین از بقیه پراستفاده‌تر و معروف‌تر شده.
پاسخ:
آره جاسمین به نسبت خوبه .... فکر کنم یه کتاب هم درباره اش هست.

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی