Maison  >  Questions et réponses  >  le corps du texte

Javascript - Les tests unitaires Mocha Chai ne fonctionnent pas

Je travaille sur un projet avec le bootcamp du cours Front End Web Development et malheureusement notre professeur ne peut pas répondre à ma question.

J'ai un jeu de cartes de guerre simple qui prend deux joueurs et y joue pendant 26 tours pour voir qui gagne. Dans ce jeu j'ai 4 classes comme suit

Ceux-ci sont configurés sous forme de modules afin qu'ils puissent être exportés puis importés dans tous les fichiers JS correspondants qui nécessitent leur exécution.

J'ai alors un ensemble de fichiers de tests unitaires qui vont ensuite essayer d'utiliser chaque fichier correspondant puis générer des tests.html pour les tests

Cela accédera à chaque fichier js de test unitaire correspondant, puis l'exécutera via la méthode décrite. Cependant, ils n'exécutent pas réellement la fonction "it" correspondante pour le test unitaire (cela est vérifié par la description et console.log() dans la fonction it. Lorsque j'essaie d'accéder à la console sur le navigateur Web, il Cela fonctionne également sans générer d'erreurs pour le débogage.

Le premier lien est vers la branche master que j'ai engagée en semaine 6, vous verrez que les tests fonctionnent quand je n'importe pas et aurez ensuite les classes correspondantes dans la description. https://github.com/jeffhennen/Projects/tree/master/Week6/Week6Final

Je souhaite qu'il utilise du code live dans les fichiers au lieu de tests unitaires, tout en gardant chaque fichier correspondant séparé, comme je l'ai fait dans cette section. https://github.com/jeffhennen/Projects/tree/Test/Week6/Week6Final

C'est mon test.html

<!DOCTYPE html>
<html>
<head>
    <link rel="stylesheet" href="node_modules/mocha/mocha.css">
</head>
<body>
    <div id = "mocha"><p><a href=".">Index</a></p></div>
    <div id = "messages"></div>
    <div id = "fixtures"></div>
    <script src="node_modules/mocha/mocha.js"></script>
    <script src="node_modules/chai/chai.js"></script>
    <script type="module" src="Scripts/Card.js"></script>
    <script type="module" src="Scripts/Deck.js"></script>
    <script type="module" src="Scripts/Player.js"></script>
    <script type="module" src="Scripts/War.js"></script>
    <script>mocha.setup('bdd')</script>
    <script type="module" src="UnitTests/CardTest.js"></script> 
    <script type="module" src="UnitTests/DeckTest.js"></script>
    <script type="module" src="UnitTests/PlayerTest.js"></script>
    <script>mocha.run();</script>

</body>
</html>

Voici un exemple de mon fichier CardTest.js

var expect = chai.expect;
import Card from '../Scripts/Card.js';

describe('Card Functions', () => {

    describe('Constructor', () => {

        console.log("Inside card describe constructor");
        let card = new Card("Club", "King", 13);
        console.log(card);
        it('Should create the card with the value of the card\'s suit equal to param 0', () => {

            console.log("test1");
            expect(card._suit).to.equal("Club");
        });

        it('Should create the card with the value of the card\'s string value equal to the param 1', () => {

            console.log("test2");
            expect(card._number).to.equal("King");
        });

        it('Should assign the numeric value of the card\'s string value to the card object', () => {

            console.log("test3");
            expect(card._value).to.equal(13);
        });
    });
});

Voici mon fichier Card.js

class Card{

    constructor(suit, number, value){

        this._suit = suit;
        this._value = value;
        this._number = number;
    }

    get suit(){

        return this._suit;
    }

    get value(){

        return this._value;
    }

    get number(){

        return this._number;
    }
    
}
export default Card;

P粉964682904P粉964682904181 Il y a quelques jours375

répondre à tous(1)je répondrai

  • P粉786800174

    P粉7868001742024-04-03 11:37:23

    J'ai découvert que pour le faire fonctionner, tout ce que j'avais à faire était de mettre à jour tests.html vers ce qui suit, je viens de mettre à jour les balises vers

    sssccc
    
    
    
    
    
    
        
    
    
        
        
    sssccc sssccc sssccc sssccc sssccc sssccc sssccc sssccc sssccc sssccc sssccc

    répondre
    0
  • Annulerrépondre