5

Tôi đang viết bài kiểm tra tích hợp cho ứng dụng được viết bằng NodeJS với MongoDB.Làm thế nào để thiết lập MongoDB cho các bài kiểm tra tích hợp trong NodeJS?

Trên máy chủ CI Tôi muốn có một số loại MongoDB được nhúng để có hiệu suất nhanh hơn và kiểm soát dễ dàng hơn. Hiện tại tôi có MongoDB trên máy chủ khác, nhưng kiểm tra chậm. Trước mỗi bài kiểm tra, tôi cần phải xóa tất cả các bộ sưu tập. Tôi đang sử dụng mongoose như ORM.

Cho đến nay tôi chỉ tìm thấy MongoDB được nhúng cho Java.

+0

Bạn chỉ có thể thiết lập một cá thể MongoDB chuyên dụng trên máy chủ CI của bạn ... –

Trả lời

0

Nhóm của chúng tôi đã đưa ra các cuộc gọi da mongo. Tùy thuộc vào các gói thử nghiệm của bạn, bạn có thể làm điều tương tự. Phải mất một chút công việc nhưng nó là giá trị nó. Tạo một hàm sơ khai và sau đó chỉ cần khai báo những gì bạn cần trong bài kiểm tra của bạn.

// Object based stubbing 
    function createObjStub(obj) { 
     return { 
     getDb: function() { 
     return { 
      collection: function() { 
       var coll = {}; 

       for (var name in obj) { 
       var func = obj[name]; 

       if (typeof func === 'object') { 
        coll = func; 
       } else { 
        coll[name] = func; 
       } 
       } 

       return coll; 
      } 
      }; 
     } 
     } 
    }; 
    // Stubbed mongodb call 
     var moduleSvc = new ModulesService(createObjStub({ 
     findById: function(query, options, cb) { 
      return cb({ 
      'name': 'test' 
      }, null); 
      //return cb(null, null); 
     } 
     }),{getProperties: function(){return{get: function(){} }; } }); 
+0

Đây là một cách có thể thực hiện được, nhưng tôi sẽ cắt tất cả các kiểm tra, ràng buộc và quy trình MongoDB. Nếu có khóa chính duy nhất, ghi thứ hai sẽ không trả về lỗi. Nếu có thông tin tiết kiệm sai, truy vấn sai hoặc khởi tạo sai, tôi sẽ không nhận thấy điều đó. –

1

Theo nguyên tắc "không sử dụng kiểm tra cho loại bạn không sở hữu", hãy xem xét tiếp tục sử dụng phiên bản MongoDB thực cho bài kiểm tra tích hợp của bạn. Hãy xem this nice article để biết chi tiết.

Các vấn đề liên quan