2017-11-18 3 views
2

Ich habe wenige Klassen, die gemeinsame Schnittstelle haben. Ich würde gerne einmal eine Jest Testsuite schreiben und sie auf alle Klassen anwenden. Im Idealfall sollte es nicht in einem Testmodul verwechselt werden, stattdessen erwarte ich, dass diese Suite für jede Klasse in jedes einzelne Testmodul importiert wird.Wie implementiert man gemeinsame Testfälle mit Jest?

Könnte mich jemand bitte auf ein Projekt hinweisen, in dem so etwas gemacht wird oder ein Beispiel geben? Vielen Dank.

Antwort

1

ich diesen Artikel gefunden, die hilfreich sein könnten: https://medium.com/@walreyes/sharing-specs-in-jest-82864d4d5f9e

Die Idee extrahiert:

// shared_examples/index.js 

const itBehavesLike = (sharedExampleName, args) => { 
    require(`./${sharedExampleName}`)(args); 
}; 

exports.itBehavesLike = itBehavesLike; 

&

// aLiveBeing.js 

const sharedSpecs = (args) => { 
    const target = args.target; 

    describe("a Live Being",() => { 
    it("should be alive",() => { 
    expect(target.alive).toBeTruthy(); 
    }) 
    }) 

} 

module.exports = sharedSpecs 

&

// Person.spec.js 

const { itBehavesLike} = require('shared_examples'); 

describe("Person",() => { 
    context("A Live Person",() => { 
    const person = new Person({alive: true}) 
    const args = {target: person} 
    itBehavesLike("aLiveBeing")(args) 
    }) 
}) 
Verwandte Themen