লেখার ইউনিট পরীক্ষা
ইউনিট পরীক্ষার চলমানকারী mocha ব্যবহার করে TDD interface । মোচা মালিকানা অধিকারের দাবি করে না (কোনো ok
orঅথবা assert_equals নেই
),সুতরাং আমরা chai ব্যবহার করি অধিকার দেয়ার জন্য।
এটি বিশেষ ভাবে সুপারিশ করা হয়েছে যে আপনি mocha সাইটের মাধ্যমে পড়ুন , যেহেতু সকল পরীক্ষা সত্যিকারভাবে মোচা পরীক্ষা ।আপনাকে শুরু করানোর জন্য এখানে দলিল কে কেন্দ্রবিন্দুতে রাখা হয়েছে,এবং আমাদের বিশেষ সম্পুর্ণতা টেষ্ট এজেন্ট এবং গা য়া তে।
এটা আরো নোট করা গুরুত্বপূর্ণ যে আমরা বিশেষ ফাংশন যোগ করি ( যেমন require()
এবং requireApp()
) লেখার পরীক্ষাকে সহজতর বানাতে।সকল পরীক্ষা সাহায্যকারী স্ক্রীপ্ট গুলো /common/test
তে সরাসরি পাওয়া যেতে পারে।
ফাইলের নাম করণ
পরীক্ষা গুলো সাধারণত একের থেকে এক। একটি হাতিয়ার সরাসরি js/
তে থাকে,এবং একটি পরীক্ষা সরাসরি test/
তে থাকে।
উদাহরণ
হাতিয়ার | পরীক্ষা |
apps/app/js/file.js | apps/app/test/unit/file_test.js |
apps/app/js/nested/thing/file.js | apps/app/test/unit/nested/thing/file_test.js |
হাতিয়ারের উদাহরণ (gist):
//apps/example/js/example.js var Example = (function(){ return { math: function() { }, complexMethod: function() { }, asyncMethod: function(callback) { } } }());
পরীক্ষার উদাহরণ (gist):
//apps/example/test/unit/example_test.js requireApp('example/js/example.js'); //suite/setup/test/done are standard mocha functionality. suite('Example', function() { var subject; //will be called before each "test" block. setup(function() { subject = Example(); }); //for a simple method test('#math', function() { var result = subject.math('1', '+', '1'); //assert functionality is provided by chai assert.equal(result, 2, 'addition should work'); }); //there is full support for async tests using done //when you set an argument to your test function it is //assumed that the given test is async and will only //complete once done is called. test('#asyncMethod', function(done) { subject.asyncMethod(function(err, value) { done(function() { assert.ok(value, 'sending message failed'); }); }); }); //when you have a method that will //require complex setup/teardown logic suite('#complexMethod', function() { var result; setup(function() { //complex setup stuff result = subject.complexMethod(); }); test('stuff works', function() { assert.typeOf(result, 'string'); //it is good practice to add the third argument which is //a description of why a test failed. assert.equal(result, 'real value', 'should output real value'); }); }); });
ডকুমেন্ট ট্যাগ এবং অবদানকারী
ট্যাগ:
Contributors to this page:
chrisdavidmills,
Bristy
সর্বশেষ হালনাগাদ করেছেন:
chrisdavidmills,