Ett enkelt sätt att skapa testdata

När ni arbetar med era projekt behöver ni troligen testdata (även kallad ”dummydata”).

Ett enkelt sätt att skapa sådan om den inte finns är (inne i en Angular-controller – fristående eller i ett direktiv – med en ngResource byggd av mongresto):

// A function to return a random item from an array
function getRandomItem(array){
  return array[Math.floor(Math.random()*array.length)];
}

// Number of documents/db-records to create
var numberOfItems = 25;

// Dummydata seeds - parts to combine to dummy data
// (Make sure propertynames and data types conform to your
// mongoose model.)
var dummyDataSeeds = {
   firstName: ["Anna","Bertil","Cecilia","David","Elin","Fredrik"],
   lastName: ["Andersson","Bark","Carlsson","Dillon","Efraimsdotter","Frank"],
   street: ["Algatan","Bokgatan","Cypressv.","Djurgränd", "E-gränd", "Fritorget"],
   streetNumber: ["2", "3", "5", "7", "11", "13", "17"]
};

// Create some testdata if a db-collection is empty
Person.get(function(persons){
  if(persons.length){ return; } // we already have some data so do nothing
  // we don't have any data so create it
  var dummyData = [];
  while(numberOfItems--){
    var obj = {};
    for(var i in dummyDataSeeds){
      obj[i] = getRandomItem(dummyDataSeeds[i]);
    }
    dummyData.push(obj);
  }
  Person.create(dummyData);
});

Kort om testning och ”mockade” objekt

Eftersom ni läser en del extra timmar om testning… Ett snabbt sätt att testa koden ovan om man inte orkar stoppa in den i en Angular-controller i ett projekt med mongresto vore att bara skriva ett ”mockat” objekt som ersätter Person:

var Person = {
  get: function(cb){
    cb([]);
  },
  create:function(arr){
    console.log(JSON.stringify(arr,"","  "));
  }
};
0 votes