Javascript – Mocha Chai-Einheitentests werden nicht ausgeführt
P粉964682904
P粉964682904 2024-04-02 14:52:19
0
1
363

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

  • Karten
  • Deck
  • Spieler
  • Krieg

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粉964682904
P粉964682904

Antworte allen(1)
P粉786800174

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








    


    
    
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!