Oefening: Pakketten installeren

Voltooid

Het Tailwind Traders-team is van plan om verschillende Node.js-apps te ontwikkelen. Ze hebben Jest, een populair testframework voor nulconfiguratie, gevonden in het npm-register. Ze willen dat u Jest installeert, een paar tests schrijft en deze uitvoert om de effectiviteit ervan te evalueren.

Een testpakket toevoegen met npm CLI

U hebt code waarmee een adres uit een tekenreeks wordt geëxtraheerd. Uw taak is eenvoudig: installeer het testframework, schrijf een paar tests en voer ze uit.

  1. Ga in een nieuw terminalvenster (Ctrl + Shift + `) naar de map met de bestanden voor deze oefening:

    cd node-dependencies/5-exercise-dependency
    
  2. De inhoud van de map weergeven:

    ls -R
    

    In deze map ziet u twee JavaScript-bestanden:

    -| address-parser.js
    -| package.json
    
  3. Open het bestand address-parser.js . Het zou er als dit bestand uit moeten zien:

     exports.addressParser = function parseOrder(order) {
       const match = order.match(/order:\s(?<order>\w+\s\w+).*address:\s(?<address>\w+\s\w+\s\w+).*payment info:\s(?<payment>\w+)/)
       return match.groups;
     }
    

    Deze functie neemt een tekenreeks en parseert informatie over wat een klant bestelt, waar deze moet worden geleverd en hoe deze wordt betaald. We voegen Jest toe en schrijven enkele tests voor de functie.

  4. Sluit het address-parser.js bestand.

  5. Installeer het Jest-pakket door deze opdracht uit te voeren:

    npm install jest --save-dev
    
  6. Nadat het Jest-pakket is geïnstalleerd, opent u het package.json bestand en zoekt u de devDependencies sectie. Als het goed is, ziet u een vermelding die eruitziet zoals in dit voorbeeld, waarbij de waarde voor de jest eigenschap een semantisch versienummer is:

    "devDependencies": {
       "jest": "<number.number.number>"
     }
    
  7. Zoek de scripts sectie in het bestand package.json. Vervang de bestaande test actievermelding door de volgende code:

    "test": "jest"
    
  8. Sla uw wijzigingen op en sluit het bestand package.json.

  9. Maak in de terminal een nieuwe submap met de naam __tests__.

    mkdir __tests__
    

    Notitie

    Zorg ervoor dat u dubbele onderstrepingstekens gebruikt wanneer u de map __tests__ maakt. De testmap is een naamconventie die wordt gebruikt door Jest, het testframework. Jest herkent automatisch bestanden in een testmap (of bestanden met .test. of .spec. in hun namen) als testbestanden en bevat ze bij het uitvoeren van tests. Met deze conventie kunt u testbestanden georganiseerd en gemakkelijk herkennen in uw project.

  10. Maak in de map __tests__ een bestand met de naam address-parser.spec.js en voeg de volgende inhoud toe aan het bestand:

     const { addressParser } = require('../address-parser');
    
     describe('Address Parser', () => {
         test('should parse correctly', () => {
             expect(addressParser("I want to to order: 3 books to address: 112 street city here is my payment info: cardnumber")
             ).toEqual({
                 order: "3 books",
                 address: "112 street city",
                 payment: "cardnumber",
             });
         });
     });
    

    Het testscript:

    • Hiermee wordt de parseringsmogelijkheid van de functie address-parser.js gecontroleerd.
    • Zorgt ervoor dat de functie de benodigde informatie correct kan parseren.
  11. Sla de wijzigingen op en sluit het bestand.

  12. De projectstructuur moet er nu uitzien als in dit voorbeeld:

    -| package.json
    -| address-parser.js
    -| __tests__/
    ---| address-parser.js
    
  13. Voer de tests uit door deze opdracht in te voeren in de terminal:

    npm run test
    

    De volgende uitvoer moet worden weergegeven:

      PASS  __tests__/address-parser.js
       Address parser
         ✓ should parse correctly (2 ms)
    
     Test Suites: 1 passed, 1 total
     Tests:       1 passed, 1 total
     Snapshots:   0 total
     Time:        0.4 s
     Ran all test suites.
    

    Gelukt! Uw test is geslaagd en u hebt tests toegevoegd door een afhankelijkheid te installeren.

Gefeliciteerd. U hebt Jest geïnstalleerd als een afhankelijkheid, tests voor toepassingscode geschreven en de tests uitgevoerd. Jest lijkt te doen wat het belooft en Tailwind Traders is waarschijnlijk blij met deze evaluatie.