Please note, this is a STATIC archive of website developer.mozilla.org from November 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

Writing Gaia Unit Tests

লেখার ইউনিট পরীক্ষা

ইউনিট পরীক্ষার   চলমানকারী  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,