suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Javascript – Mocha Chai-Einheitentests werden nicht ausgeführt

Ich arbeite an einem Projekt mit dem Front-End-Webentwicklung-Kurs-Bootcamp und leider kann unser Professor diese meine Frage nicht beantworten.

Ich habe ein einfaches Kriegskartenspiel, bei dem zwei Spieler 26 Runden lang spielen, um zu sehen, wer gewinnt. In diesem Spiel habe ich 4 Klassen wie folgt

Diese sind als Module eingerichtet, sodass sie exportiert und dann in alle entsprechenden JS-Dateien importiert werden können, die ihre Ausführung erfordern.

Ich habe dann eine Reihe von Unit-Testdateien, die dann versuchen, jede entsprechende Datei zu verwenden und dann die Datei „tests.html“ für die Tests zu generieren

Dadurch wird auf jede entsprechende Unit-Test-JS-Datei zugegriffen und diese dann über die beschriebene Methode ausgeführt. Sie führen jedoch nicht tatsächlich die entsprechende „it“-Funktion für den Komponententest aus (dies wird durch die Beschreibung und console.log() in der it-Funktion überprüft. Wenn ich versuche, im Webbrowser zur Konsole zu wechseln, wird it Dies geschieht auch, ohne Fehler beim Debuggen auszulösen.

Der erste Link führt zum Master-Zweig, den ich in Woche 6 festgeschrieben habe. Sie werden sehen, dass die Tests funktionieren, wenn ich nicht importiere, und dann die entsprechenden Klassen in der Beschreibung haben. https://github.com/jeffhennen/Projects/tree/master/Week6/Week6Final

Ich möchte, dass Live-Code in Dateien anstelle von Unit-Tests verwendet wird und gleichzeitig jede entsprechende Datei separat bleibt, wie ich es in diesem Abschnitt getan habe. https://github.com/jeffhennen/Projects/tree/Test/Week6/Week6Final

Das ist mein 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>

Hier ist ein Beispiel meiner CardTest.js-Datei

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);
        });
    });
});

Das ist meine Card.js-Datei

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粉964682904264 Tage vor519

Antworte allen(1)Ich werde antworten

  • P粉786800174

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

    我发现要让它运行,我需要做的就是将tests.html更新为以下内容,我只需将标签更新为

    
    
    
    
    
    
    
        
    
    
        
        

    Antwort
    0
  • StornierenAntwort