উত্তর:
assert
জাভাস্ক্রিপ্টে কোনও নেই (এখনও; এটিতে একটি যুক্ত করার কথা রয়েছে , তবে এটি প্রাথমিক পর্যায়ে রয়েছে)। সম্ভবত আপনি কিছু লাইব্রেরি ব্যবহার করছেন যা একটি সরবরাহ করে। সাধারণ অর্থটি হ'ল কোনও ক্রিয়াটিতে প্রবেশ করা এক্সপ্রেশনটি ভুল হলে একটি ত্রুটি নিক্ষেপ করা; এটি দৃ checking়তা যাচাইয়ের সাধারণ ধারণার অংশ । সাধারণত দাবিগুলি (যেমন তারা ডাকা হয়) কেবলমাত্র "টেস্টিং" বা "ডিবাগ" বিল্ডগুলিতে ব্যবহৃত হয় এবং উত্পাদন কোড থেকে সরিয়ে নেওয়া হয়।
ধরুন আপনার একটি ফাংশন রয়েছে যা সর্বদা একটি স্ট্রিং গ্রহণ করার কথা ছিল । কেউ জানতে চান যদি কেউ সেই ফাংশনটিকে এমন কোনও কিছু দিয়ে ডাকে যেটি স্ট্রিং ছিল না। সুতরাং আপনি করতে পারেন:
assert(typeof argumentName === "string");
... assert
শর্তটি মিথ্যা হলে কোথায় ত্রুটি ছুঁড়ে মারত।
খুব সাধারণ সংস্করণটি দেখতে এটির মতো হবে:
function assert(condition, message) {
if (!condition) {
throw message || "Assertion failed";
}
}
আরও ভাল, Error
জাভাস্ক্রিপ্ট ইঞ্জিন যদি এটি সমর্থন করে তবে অবজেক্টটি ব্যবহার করুন (সত্যিই পুরানোগুলি নাও পারে), যার স্ট্যাক ট্রেস সংগ্রহ করার সুবিধা রয়েছে এবং এগুলি:
function assert(condition, message) {
if (!condition) {
message = message || "Assertion failed";
if (typeof Error !== "undefined") {
throw new Error(message);
}
throw message; // Fallback
}
}
এমনকি আই 8 এর রয়েছে Error
(যদিও এর stack
সম্পত্তি নেই তবে আধুনিক ইঞ্জিনগুলি [আধুনিক আইই সহ] রয়েছে)।
if(!condition)
সেট var throwError=true;
হয়ে যায় debugger;
তখন একটি থ্রো বিভাগটি মোড়ক করে if(throwError)
। এইভাবে, যদি আমার ডিবাগারটি খোলা থাকে তবে এটি ভেঙে যাবে এবং আমি যদি ইচ্ছা করি তবে আমি throwError
মিথ্যাতে সেট করতে পারি এবং পদক্ষেপ নেওয়ার সময় সমস্ত স্কোপগুলি পরীক্ষা করতে পারি।
throw
। এইভাবে আপনার debugger;
বিবৃতি দরকার নেই । আরও কিছুর জন্য বিকাশকারী.চ্রোম / দেবতুলস / ডকস / See দেখুন।
if
শর্তসাপেক্ষ অপারেটরের জন্য কেনাবেচা করেছেন। যাইহোক, আজকের বিশ্বে, আমি যে ইঞ্জিনগুলি নেই সেগুলি সমর্থন করার জন্য বিরক্ত করব না Error
।
যদি কোনও আধুনিক ব্রাউজার বা নোডেজ ব্যবহার করা হয় তবে আপনি ব্যবহার করতে পারেন console.assert(expression, object)
।
আরও তথ্যের জন্য:
console.error
এটি কোডটি চালিয়ে যাওয়া চালিয়ে যাওয়ার মতো আরও কাজ করে।
console.assert
এটির মতো আচরণ না করা এতটা ভাল নয় throw
।
console.assert
তার কারণ হ'ল ফাংশন পরিচালনার ক্ষেত্রে ত্রুটি নয়। এগুলি কেবল উন্নয়নের সময় কোড যথার্থতা যাচাইয়ের জন্য ডিজাইন করা হয়েছে। Ditionতিহ্যগতভাবে তারা তুচ্ছ কিছু কারণে লাইভ সিস্টেমের অবসান এড়াতে উত্পাদন পরিবেশে সম্পূর্ণ অক্ষম are ব্রাউজারটি একটি উত্পাদন পরিবেশ হিসাবে বিবেচিত হয়, সুতরাং console.assert
সেখানে কার্যকর করা বন্ধ করে দেয় না। যদি আপনি কার্য সম্পাদন বন্ধের জন্য জোরের উপর নির্ভর করে থাকেন তবে আপনার পরিবর্তে যথাযথ ত্রুটি পরিচালনা করা উচিত, কারণ এটি যা দাবি হিসাবে বোঝানো হচ্ছে তা নয়।
অন্যান্য উত্তরগুলি ভাল: ECMAScript5- এ অন্তর্নিহিত একটি দাবী ফাংশন নেই (যেমন জাভাস্ক্রিপ্ট যা মূলত সর্বত্র কাজ করে) তবে কিছু ব্রাউজার আপনাকে এটি দেয় বা অ্যাড-অনগুলি দেয় যা সেই কার্যকারিতা সরবরাহ করে। যদিও এটির জন্য সম্ভবত একটি প্রতিষ্ঠিত / জনপ্রিয় / রক্ষণাবেক্ষণ করা লাইব্রেরি ব্যবহার করা সবচেয়ে ভাল, তবে একাডেমিক উদ্দেশ্যে "দরিদ্র ব্যক্তির দাবী" ফাংশনটি এর মতো দেখতে পারে:
const assert = function(condition, message) {
if (!condition)
throw Error('Assert failed: ' + (message || ''));
};
assert(1 === 1); // Executes without problem
assert(false, 'Expected true');
// Yields 'Error: Assert failed: Expected true' in console
try
, catch
, throw
)
assert()
নেটিভ জাভাস্ক্রিপ্ট ফাংশন নয়। এটি কেউ তৈরি একটি কাস্টম ফাংশন। আপনাকে এটি আপনার পৃষ্ঠায় বা আপনার ফাইলগুলিতে সন্ধান করতে হবে এবং এটি কী করছে তা নির্ধারণের জন্য কারও জন্য এটি পোস্ট করতে হবে।
এটি দেখুন: http://net.tutsplus.com/tutorials/ javascript-ajax / quick-tip-quick-and-easy-javascript-testing-with-assert/
এটি জাভাস্ক্রিপ্ট পরীক্ষা করার জন্য। আশ্চর্যজনকভাবে, সবেমাত্র পাঁচ বা ছয়টি লাইনে, পরীক্ষা করার সময় এই কোডটি আপনার কোডের উপর একটি দুর্দান্ত স্তর এবং নিয়ন্ত্রণ সরবরাহ করে।
আসক্তি ফাংশন দুটি পরামিতি গ্রহণ করে:
ফলাফল: একটি বুলিয়ান, যা আপনার পরীক্ষাটি পাস করেছে বা ব্যর্থ হয়েছে কিনা তা উল্লেখ করে
বর্ণনা: আপনার পরীক্ষার একটি সংক্ষিপ্ত বিবরণ।
জোর ফাংশনটি কেবলমাত্র একটি তালিকা আইটেম তৈরি করে, আপনার পরীক্ষার সত্য বা মিথ্যা ফিরে আসে কিনা তার উপর নির্ভর করে কোনও "পাস" বা "ব্যর্থ" শ্রেণীর প্রয়োগ করে এবং তারপরে তালিকা আইটেমটিতে বিবরণ যুক্ত করে। শেষ অবধি, কোডে থাকা সেই ব্লকটি পৃষ্ঠাতে যুক্ত করা হবে। এটি ক্রেজি সহজ, তবে পুরোপুরি কাজ করে।
এখানে আসক্তি ফাংশনটির একটি খুব সহজ বাস্তবায়ন। আপনি যা পরীক্ষা করছেন তার একটি মান এবং একটি বিবরণ লাগে।
function assert(value, description) {
var result = value ? "pass" : "fail";
console.log(result + ' - ' + description);
};
মানটি যদি সত্যের কাছে মূল্যায়ন করে তবে এটি পাস হয়।
assert (1===1, 'testing if 1=1');
যদি এটি মিথ্যা ফেরত দেয় তবে এটি ব্যর্থ হয়।
assert (1===2, 'testing if 1=1');
যদি দাবিটি মিথ্যা হয় তবে বার্তাটি প্রদর্শিত হবে। বিশেষত, যদি প্রথম যুক্তিটি মিথ্যা হয় তবে দ্বিতীয় যুক্তি (স্ট্রিং বার্তা) বিকাশকারী সরঞ্জামগুলির কনসোলে লগ হবে be প্রথম যুক্তি যদি সত্য হয় তবে মূলত কিছুই হয় না। একটি সাধারণ উদাহরণ - আমি গুগল বিকাশকারী সরঞ্জাম ব্যবহার করছি:
var isTrue = true;
var isFalse = false;
console.assert(isTrue, 'Equals true so will NOT log to the console.');
console.assert(isFalse, 'Equals false so WILL log to the console.');
এটি সম্ভবত একটি টেস্টিং লাইব্রেরি নিয়ে এসেছে যা আপনার কোড ব্যবহার করছে। এর একটি উদাহরণ এখানে রয়েছে (আপনার কোডটি যেভাবে ব্যবহার করছে এটি একই লাইব্রেরি নয়, তবে এটি সাধারণ ধারণাটি দেখায়) এর সম্ভাবনা রয়েছে:
শব্দ বা ফাংশন "assert" বেশিরভাগ প্রয়োগের অংশগুলির পরীক্ষার জন্য ব্যবহৃত হয়।
অবস্থার কার্যকারিতা হ'ল শর্তটি যাচাই করার জন্য প্রোগ্রামটিকে নির্দেশ দেওয়ার একটি সংক্ষিপ্ত উপায় (এটি "দৃser়তা "ও বলা হয়) এবং শর্তটি সত্য না হলে এটি ত্রুটি ছুঁড়ে দেবে।
সুতরাং আসুন দেখে নেওয়া যাক এটি "সাধারণ কোড" তে কেমন দেখাচ্ছে
if (typeof "string" === "array") {
throw Error('Error: "string" !== "array"');
}
আপনার সাথে assert
সহজভাবে লিখতে পারেন:
assert(typeof "string" === "array")
জাভাস্ক্রিপ্টে কোনও নেটিভ assert
ফাংশন নেই, তাই আপনাকে কিছু লাইব্রেরি থেকে একটি ব্যবহার করতে হবে।
সাধারণ পরিচিতির জন্য, আপনি এই নিবন্ধটি পরীক্ষা করতে পারেন:
http://fredkschott.com/post/2014/05/nodejs-testing-essentials/
আমি আসা করি এটা সাহায্য করবে.
প্রথম বৈশিষ্ট্যটি মিথ্যা হলে দৃ As়তা ত্রুটি বার্তা নিক্ষেপ করে এবং দ্বিতীয় বৈশিষ্ট্যটি বার্তা নিক্ষেপ করা হয়।
console.assert(condition,message);
জাভাস্ক্রিপ্টে দৃser়তার উপস্থিতি নেই বলে অনেক মন্তব্য রয়েছে তবে console.assert()
এটি জাভাস্ক্রিপ্টে দৃ .় ফাংশন যা বাগটি কেন / কোথায় ঘটে তা সন্ধানের ধারণা।
console.assert(document.getElementById("title"), "You have no element with ID 'title'");
console.assert(document.getElementById("image"), "You have no element with ID 'image'");
বার্তাটির উপর নির্ভর করে আপনি বাগটি কী তা খুঁজে পেতে পারেন। এই ত্রুটি বার্তাগুলি লাল রঙে কনসোলে প্রদর্শিত হবে যেন আমরা console.error();
কনসোল এক্সিকিউটে আরও ফাংশন দেখতে বলিconsole.log(console);
পূর্ববর্তী উত্তরগুলি পারফরম্যান্স এবং সামঞ্জস্যের দিক থেকে উন্নত করা যেতে পারে।
যদি অবজেক্টটি উপস্থিত না হয় তবে একবার তা পরীক্ষা করুন Error
:
if (typeof Error === "undefined") {
Error = function(message) {
this.message = message;
};
Error.prototype.message = "";
}
তারপরে, প্রতিটি দৃ়তা শর্তটি পরীক্ষা করবে এবং সর্বদা একটি Error
বস্তুকে ফেলে দেবে
function assert(condition, message) {
if (!condition) throw new Error(message || "Assertion failed");
}
মনে রাখবেন যে কনসোলটি আসল ত্রুটি লাইন নম্বরটি প্রদর্শন করবে না, তবে assert
ফাংশনের লাইনটি , যা ডিবাগিংয়ের জন্য কার্যকর নয়।
আপনি যদি ওয়েবপ্যাকটি ব্যবহার করেন তবে আপনি কেবল নোড.জেএসএস স্টোর লাইব্রেরি ব্যবহার করতে পারেন । যদিও তারা দাবি করে যে এটি "সাধারণ উদ্দেশ্য অনুসারে পাঠাগার হওয়ার উদ্দেশ্যে নয়", এটি অ্যাড-হকের দাবিগুলির পক্ষে ঠিক আছে বলে মনে হয় এবং নোড স্পেসে কোনও প্রতিদ্বন্দ্বীর উপস্থিতি নেই বলে মনে হয় (চই ইউনিট পরীক্ষার জন্য ডিজাইন করা হয়েছে)।
const assert = require('assert');
...
assert(jqXHR.status == 201, "create response should be 201");
এটি ব্যবহার করতে সক্ষম হতে আপনাকে ওয়েবপ্যাক ব্যবহার করতে হবে বা ব্রাউজ করা উচিত, সুতরাং অবশ্যই যদি এটি ইতিমধ্যে আপনার কর্মপ্রবাহে থাকে তবে এটি কার্যকর।
মত অন্যান্য অপশন ছাড়াও console.assert বা আপনার নিজের ঘূর্ণায়মান , আপনি ব্যবহার করতে পারেন পরিবর্তিত । এটিতে বেশ কয়েকটি অনন্য বৈশিষ্ট্য রয়েছে:
%s
নির্দিষ্টকরণকারী ব্যবহার করে ) সমর্থন করে ।টিজে দ্বারা যেমন উল্লেখ করা হয়েছে, assert
জাভাস্ক্রিপ্টে কোনও নেই । যাইহোক, একটি নোড মডিউল নামে হয় জাহির , যা বেশিরভাগ পরীক্ষার জন্য ব্যবহৃত । সুতরাং, আপনি কোড দেখতে পাবেন:
const assert = require('assert');
assert(5 > 7);
assert
।