ইউনিট টেস্টিং

This article needs a technical review. How you can help.

This article needs an editorial review. How you can help.

This translation is incomplete. Please help translate this article from English.

এই tutorial আপনার থাকতে দরকার হবে অনুসরন করতে installed the SDKজ্ঞানী basics of cfxআর অনুসরন করা tutorial writing reusable modules.

যদি আপনি ব্যবহার করতেন jpm cfx বদলে, cfx থেকে স্থানান্তর করতে গাইড দেখে, in particular সেকশান loading modules from test code.

sdk দেয় একটি কাঠামো সাহায্য করতে বানায় আর আপনার কোড-এর জন্য অংশ পরীক্ষা দৌড়ায়এটা হাতেকলমে দেখাতে কাজ করে আমরা একটি সাদাসিধে-এর জন্য কিছু অংশ পরীক্ষা লিখব Base64 মডিউল সঙ্কেতাক্ষরে লিখতে.

একটি  সাদাসিধে  base64  মডিউল

একটি ওয়েব পাতায়, আপনি base64 সম্পাদন করতে পারেন ( -rrb- আর atob -lrb- ) কাজ ব্যব‌হার সঙ্কেতাক্ষরে লিখতে আর btoa ব্যবহার করা সন্কেত উদঘাটন করতে।দুর্ভাগ্যক্রমে এই কাজ ব্যব‌হার জানালা জিনিষে সংযুক্ত করা হয়: যেহেতু এই জিনিষ না উপস্থিত আপনার প্রধান add-on কোডে, atob ( -rrb- আর btoa -lrb- ) নেই উপস্থিত either। তাই আমরা একটি base64 মডিউল বানাবো প্ল্যাটফর্ম থেকে এই কাজ ব্যব‌হার অনাবৃত করতে।

শুরুতে, একটি নতুন ডিরেক্টরি বানাতে, এটায় পথ খোঁজতে, আর cfx init দৌড়াতে। Now create a new file in "lib" called "base64.js", and give it the following contents:এখন `` libে '' `` "base64.js" ডাকা একটি নতুন ফাইল বানান।

const { atob, btoa } = require("chrome").Cu.import("resource://gre/modules/Services.jsm", {});
 
exports.atob = a => atob(a);
exports.btoa = b => btoa(b); 

এই কোড দুটো কাজ ব্যব‌হার, যা মাত্র প্ল্যাটফর্ম-এর btoa ডাকে রপ্তানি করে() and atob() functions. ব্যবহারে মডিউল দেখাতে, সম্পাদন করতে "main.js"দাখিল করুন যেহেতু  এটি অনুসরন করে:

var base64 = require("./base64");

var button = require("sdk/ui/button/action").ActionButton({
  id: "base64",
  label: "base64",
  icon: "./icon-16.png",
  onClick: function() {
    encoded = base64.btoa("hello");
    console.log(encoded);
    decoded = base64.atob(encoded);
    console.log(decoded);
  }
});

আপনার add-ons `` ডাটা '' ডিরেক্টরিতে বাঁচাতে  উপরন্তু দৃষ্টান্ত  একটি প্রতিমা উল্লেখ করে `` icon-16 দাখিল করে থাকতে হবে। । আপনি এই প্রতিমা ডাউনলোড করতে পারতেন: .

এখন "main.js" আমদানি base64 মডিউল আর ডাক এটার দুটো exported কাজ ব্যব‌হার।

যদি আমরা add-on দৌড়াতাম আর বাটন ক্লিক করি, আমরা অনুসরন করা লগ করা আউটপুট দেখা উচিত

:

info: aGVsbG8=
info: hello

পরীক্ষা করে  base64  মডিউল

navigate এ্যাডঅন-এর-এর test directory আর delete test-main.js ফাইলএটার জায়গায় বানান একটি ফাইল যা ডাকা হলো test-base64.js অনুসরন করা অভ্যন্তরস্থ বস্তু-এর সাথে:

var base64 = require("./base64");
 
exports["test atob"] = function(assert) {
      assert.ok(base64.atob("aGVsbG8=") == "hello", "atob works");
}
 
exports["test btoa"] = function(assert) {
  assert.ok(base64.btoa("hello") == "aGVsbG8=", "btoa works");
}
 
exports["test empty string"] = function(assert) {
  assert.throws(function() {
                  base64.atob();
                },
                "empty string check works");
}
 
require("sdk/test").run(exports); 

এটা দাখিল করেরপ্তানি করে তিন কাজ ব্যব‌হার, যার each একটি একাকী যুক্তি পেতে আশা করে যা হচ্ছে একটি assert জিনিষ. assert যোগান দেয়া হয় test/assert module আর বাস্তবায়িত করেCommonJS Unit Testing specification.

  • প্রথম দুটো কাজ ব্যব‌হার atob ডাকে() আর btoa() আর ব্যবহার assert.ok() যাচাই করতে যে হচ্ছে as আশা করা আউটপুট।

  • দ্বিতীয় কাজ ব্যব‌হার একটি খালি সূতা পাশ করতে দ্বারা মডিউল-এর error-handling কোড পরীক্ষা করেatob() আর ব্যবহার করতেassert.throws() যাচাই করতে যে ওঠানো হয় প্রত্যাশিত ব্যতিক্রম।

এই মুহূর্তে আপনার add-on ought এই মত দেখতে:

  /base64
      package.json
      README.md
      /doc
          main.md
      /lib
          main.js
          base64.js
      /test
          test-base64.js

এখন cfx নির্বাহ করুন-- এ্যাডঅন-এর মূল ডিরেক্টরি থেকে verbose পরীক্ষা করুন। আপনি এখন এর মত কিছু দেখা পাবেন:

Running tests on Firefox 13.0/Gecko 13.0 ({ec8030f7-c20a-464f-9b0e-13a3a9e97384}) under darwin/x86.
info: executing 'test-base64.test atob'
info: pass: atob works
info: executing 'test-base64.test btoa'
info: pass: btoa works
info: executing 'test-base64.test empty string'
info: pass: empty string check works

3 of 3 tests passed.
Total time: 5.172589 seconds
Program terminated successfully.
কি ঘটে এখানে হচ্ছে সে cfx পরীক্ষা

যোজক চিহ্ন নোট করুন "test" module নামে। cfx testwill অন্তর্ভুক্ত করে একটি মডিউল যা ডাকা হলো "test-myCode.js", কিন্তু, অভিলাষ মডিউল ছাঁটাই করে যা ডাকা হলো "test_myCode.js" or "testMyCode.js".

  • পরীক্ষা ডিরেক্টরিতে রূপ আপনার প্যাকেজ-এর
  • যেকোনো মডিউল যার নাম শব্দ পরীক্ষার সাথে শুরু করে loads-
  • প্রত্যেক exported কাজ ব্যব‌হার যার নাম শুরু করে calls"test", এটা একটি পাশ করতে assert এটার একমাত্র যুক্তি হিসেবে আপত্তি করুন।

স্পষ্টত, আপনার-- verbose অপশন পাশ করতে cfx যদি আপনি চাইতেন না হবে না; এত মাত্র করতে আউটপুট আরো সহজ পড়তে বানায়।

ডকুমেন্ট ট্যাগ এবং অবদানকারী

 সর্বশেষ হালনাগাদ করেছেন: DxMuhit,