Jasime TDD en javascript

Em vaig decidir provar el jasmine. La veritat què 2.0 mola per què no depen d'altra biblioteca (ajuda molt) i s'arranca des d'una web (més fàcil no pot ser), ens el baixem i mirem (editem) l'arxiu SpecRuner.html. Ahí haurem d'incloure els tests i els nostres arxius .js:


Per exemple, podem veure el generador de questionaris que on estic treballant ara (https://github.com/fercavi/jsquest). Els tests es poden agrupar, el grup haurà de rebre un nom i es fa amb la funció describe:

describe("Generar html per a preguntes individuals", function() {
  test1
  test2
...
});

cada test es realitzarà amb la funció it:
it("Generar una pregunta de resposta llarga", function() {
  cos del test
});

el cos del test deurà de tindre unes condicions, definides amb la funció  expect, per exemple: expect(obj1).toEqual(obj2)
(caldria mirar la documentació per veure totes les comparacions, anem a veure un test sencer:

describe("Generar html per a preguntes individuals", function() {
  var item;

  it("Generar una pregunta de resposta llarga", function() {
    item = new ItemRespostaLlarga("De quin color era el cavall blanc de Santiago",666,false);
    item.generarPregunta();
    expect(item.html).toEqual("<form name='f666' ><p id=666 obligatoria='false' >De quin color era el cavall blanc de Santiago<br/><textarea cols=80 rows=6 name=pregunta666></textarea></p></form>");
  });
});

Per exemple l'arxiu complet tindria este aspecte:


Recordem que al github tenim tots els arxius del projecte.
Quan vaig publicar l'article se'm va oblidar posar una captura de que passa quan obrim l'SpecRunner.html:




Comentaris

Entrades populars d'aquest blog

Comparativa dels Sistemes Polítics Espanyol, Valencià i d'un partit polític. (II)

Clean Code... WTF? És realment viable?

Hui he vist la por als ulls