2016-09-13 3 views
0

Ich benutze zurzeit "Intern.js", um Funktions-/Verhaltenstests für meine Frontendanwendung zu tun (klicken Sie auf Knöpfe, erwarten Sie eine Mitteilung Pop-up und so auf).Javascript: Wie man Methoden an einen bereits definierten Typ anfügt

Ein einfacher Test wäre so etwas wie:

bdd.describe('###### txtFirstName', function() { 
    bdd.it('must be a "text" type input', function() { 
    /** Begin the test */ 
    let test = 

     /** Find the 'addUserModal' on the DOM and then find the 'txtFirstName' inside it */ 
     helper.addUserModal.find.field.txtFirstName() 
     .getProperty('type') 
     .then(function(type) { 
      expect(type).to.equal('text'); 
     }) 
     .end() 
    /** End the test */ 
    .end(); 

    return test; 
    }); 
}); 

Beachten Sie, dass dieser Teil des Tests:

.getProperty('type') 
.then(function(type) { 
    expect(type).to.equal('text'); 
}) 
.end() 

Würde für jeden Eingang auf der Modal wiederholt werden, so, anstatt es zu Wiederholung auf

/** Begin the test */ 
let test = 
    /** Find the 'addUserModal' on the DOM and then find the 'txtFirstName' inside it */ 
    helper.addUserModal.find.field.txtFirstName() 
    .must.be.a.text.input() 
/** End the test */ 
.end(); 

und die "must.be.a.text.input()" hätte th: jeder Test, ich so etwas wie tun wollte e geben Behauptungen an.

Eine wichtige Sache zu beachten ist, dass alle diese "Intern.js" -Methoden ein Versprechen zurückgibt.

Haben Sie irgendwelche Vorschläge?

Danke!

Die "Intern.js" lib: https://theintern.github.io/

Es ist Dokumentation: https://theintern.github.io/leadfoot/module-leadfoot_Command.html

Antwort

0

Sie können versuchen, chai-as-promised zu verwenden.

Mit chai-as-versprochen, Ihr Code

helper.addUserModal.find.field.txtFirstName() 
    .getProperty('type') 
    .then(function(type) { 
     expect(type).to.equal('text'); 
    }) 

als

expect(helper.addUserModal.find.field.txtFirstName().getProperty('type')) 
    .to.eventually.equal('text') 
geschrieben werden
Verwandte Themen