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 test
will অন্তর্ভুক্ত করে একটি মডিউল যা ডাকা হলো "test-myCode.js", কিন্তু, অভিলাষ মডিউল ছাঁটাই করে যা ডাকা হলো "test_myCode.js" or "testMyCode.js".
- পরীক্ষা ডিরেক্টরিতে রূপ আপনার প্যাকেজ-এর
- যেকোনো মডিউল যার নাম শব্দ পরীক্ষার সাথে শুরু করে loads-
- প্রত্যেক exported কাজ ব্যবহার যার নাম শুরু করে calls"test", এটা একটি পাশ করতে
assert
এটার একমাত্র যুক্তি হিসেবে আপত্তি করুন।
স্পষ্টত, আপনার-- verbose অপশন পাশ করতে cfx যদি আপনি চাইতেন না হবে না; এত মাত্র করতে আউটপুট আরো সহজ পড়তে বানায়।