before()
সামনে একবার চালানো হয় সব একটি পরীক্ষা describe
after()
একবার চালানো হয় পরে সব একটি পরীক্ষা describe
beforeEach()
সামনে চালানো হয় প্রতিটি একটি পরীক্ষা describe
afterEach()
পর চালানো হয় প্রতিটি একটি পরীক্ষাdescribe
আপনি কোনটি ব্যবহার করতে চান তা আপনার আসল পরীক্ষার উপর নির্ভর করে।
এখন, দীর্ঘ ব্যাখ্যা জন্য। আপনি যদি mocha -R min
এটি চালিয়ে যান:
describe("top", function () {
before(function () {
console.log("top before");
});
after(function () {
console.log("top after");
});
beforeEach(function () {
console.log("top beforeEach");
});
afterEach(function () {
console.log("top afterEach");
});
it("test1", function () {
console.log("top test1");
});
describe("sublevel", function() {
before(function () {
console.log("sublevel before");
});
after(function () {
console.log("sublevel after");
});
beforeEach(function () {
console.log("sublevel beforeEach");
});
afterEach(function () {
console.log("sublevel afterEach");
});
it("test1", function () {
console.log("sublevel test1");
});
it("test2", function () {
console.log("sublevel test2");
});
});
it("test2", function () {
console.log("top test2");
});
});
আপনি এরকম কিছু দেখতে পাবেন (আমি প্রাসঙ্গিক নয় এমন আউটপুট বাদ দিয়েছি):
top before
top beforeEach
top test1
top afterEach
top beforeEach
top test2
top afterEach
sublevel before
top beforeEach
sublevel beforeEach
sublevel test1
sublevel afterEach
top afterEach
top beforeEach
sublevel beforeEach
sublevel test2
sublevel afterEach
top afterEach
sublevel after
top after
জিনিস যে আপনি যদি কি আগে ও sublevel এ পরীক্ষার প্রতিটি পর executes তাকান বিস্ময়কর হতে পারে যে হয় উভয়beforeEach
শীর্ষ স্তরে এবং sublevel এ callbacks বলা হয়। একই জিনিস afterEach
।
কিছু ক্রম বিস্মিত হয় sublevel before
, top beforeEach
, sublevel beforeEach
। তারা মনে করে যে একটি বাইরের সুযোগ সব আঙ্গুলসমূহ, একটি ভিতরের সুযোগ সব আঙ্গুলসমূহ সামনে চালানো উচিত যাতে তারা ক্রম আশা: top beforeEach
, sublevel before
, sublevel beforeEach
। যাইহোক, মোচা হুকগুলি যে ক্রম সম্পাদন করে before
সেটিকে পুরো অর্থে বোঝায়: হুক বলতে বোঝানো হয় একদল পরীক্ষার জন্য মঞ্চ নির্ধারণ করা, যেখানে beforeEach
প্রতিটি পরীক্ষা প্রতিটি পৃথক পরীক্ষার জন্য। একজাতীয় উৎকৃষ্ট কফি একটি পরীক্ষা executes, তখন সব before
এবং beforeEach
আঙ্গুলসমূহ যে সেট হয়েছিল describe
যে এটা রয়েছে, এবং যে সব পূর্বপুরুষদের describe
পরীক্ষা প্রযোজ্য হবে। মোচা প্রতিটি before
হুক বহির্মুখী ক্ষেত্র beforeEach
থেকে আন্তঃস্থ পর্যন্ত এবং সমস্ত হুক বহির্মুখী ক্ষেত্র থেকে আন্তঃতম পর্যন্ত সঞ্চালন করবে। যাহোক, before
প্রয়োগ করা সমস্ত হুকগুলি কোনও beforeEach
হুকের আগেই কার্যকর করা হয় । এটি উপরের sublevel before
ক্রমটি ব্যাখ্যা করে: আগে সম্পাদন করে top beforeEach
কারণ এটি before
হুক। এবং সঙ্গে after
এবং afterEach
একই লজিক প্রযোজ্য কিন্তু অর্ডার বিপরীত হয়: সব afterEach
আঙ্গুলসমূহ প্রযোজ্য কোনো আগে মৃত্যুদন্ড কার্যকর করা হয় after
হুক।
এছাড়াও লক্ষ্য করুন যে শীর্ষ স্তরের কলটির it
তুলনায় আমি কীভাবে আমার কলগুলি অর্ডার করেছি সে সম্পর্কে মোচাকে কিছু আসে যায় না । এটি কার্যকর করে , এবং তারপরে সাবলেভেল টেস্টগুলি, যদিও আমি যে আদেশ দিয়েছিলাম তা ছিল , তারপরে সাবলেভেল পরীক্ষা এবং তারপরে ।describe
describe
top test1
top test2
top test1
top test2
কি তোমাদের মধ্যে ব্যবহার করতে চান before
, beforeEach
ইত্যাদি সত্যিই আপনার পরীক্ষার সুনির্দিষ্ট উপর নির্ভর করে। সেটআপ করার জন্য একটি উপহাস বস্তু বা ডাটা স্ট্রাকচার প্রয়োজন এবং এই বস্তু বা কাঠামো যদি পারেন একটি একক সমস্ত পরীক্ষার দ্বারা পুনঃব্যবহার করা describe
, আপনি ব্যবহার করতে পারেন before
এটি সেট আপ করতে এবং after
এটি চূর্ণ করা। আপনি যদি কাঠামোর উপর কেবল পঠন পরীক্ষা করে থাকেন তবে এটি হতে পারে। যদি আপনার সমস্ত পরীক্ষাগুলি কেবল এটি পড়ে, তবে এটি বারবার তৈরি করার দরকার নেই। আপনার প্রতিটি পরীক্ষার যদি কাঠামোর describe
একটি নতুন অনুলিপি প্রয়োজন হয় কারণ প্রতিটি পরীক্ষায় কাঠামোটি পরিবর্তন করা হচ্ছে তবে আপনার beforeEach
প্রতিটি পরীক্ষার জন্য নতুন কাঠামো তৈরি করতে ব্যবহার করা উচিত এবং তারপরেafterEach
আপনার যদি এটি পরিষ্কারভাবে ছিঁড়ে ফেলার দরকার হয়। এটি করা পরীক্ষার বিচ্ছিন্নতা নিশ্চিত করে: প্রতিটি পরীক্ষা একটি পরিচিত রাষ্ট্র থেকে শুরু হয় এবং সাফল্যের জন্য পূর্ববর্তী পরীক্ষার উপস্থিতি বা অনুপস্থিতির উপর নির্ভর করে না।