Einführung
Testgetriebene Entwicklung (TDD) ist ein evolutionärer Entwicklungsansatz, der die Test-First-Entwicklung kombiniert, bei der Sie einen Test schreiben, bevor Sie gerade genug Produktionscode schreiben, um diesen Test zu erfüllen, und Refactoring . Einfach ausgedrückt werden Testfälle erstellt, bevor Code geschrieben wird.
Bei diesem Ansatz verwenden wir Express als Backend-Server und mongo-db als Datenbank.
Quickbooks Druck- und PDF-Reparaturwerkzeug Windows 10
Zu Testzwecken verwenden wir Mokka & Keller .
Mocha: Mocha ist ein funktionsreiches JavaScript-Test-Framework, das auf läuft Node.js und im Browser, wodurch asynchrones Testen einfach und unterhaltsam wird.
Cha**i:**Chai ist eine BDD/TDD-Assertion-Bibliothek für Knoten und der Browser, der sich wunderbar mit jedem Javascript-Test-Framework kombinieren lässt.
Voraussetzungen
- ausdrücken
- Mongodb
- Verständnis der Ruhe-API
- Idee für die Arbeit in der Backend-Technologie.
Projektaufbau
Bevor wir mit der Entwicklung unserer eigentlichen API beginnen, müssen wir den Ordner und den Endpunkt einrichten. Erstellen Sie einen Projektordner mit dem Namen tddapp .
Initialisieren des Projektordners zum Einrichten der package.json
npm init
In einem Softwareprojekt gibt es keinen perfekten Weg, um eine Anwendung zu strukturieren. Schau dir das an GitHub Repository für die in diesem Tutorial befolgte Ordnerstruktur.
Abhängigkeiten installieren
- ausdrücken
- Mongu Ich kenne
- Dotenv
- Bcryptj S
- Jsonwebtoken
- Mokka : npm installieren Mokka
- Chai : npm install chai
- Chai-htt p: npm install chai-http
Arbeiten an Rest Api
Lassen Sie uns eine erstellen Modelle Ordner im Stammordner Ihrer Anwendung. In diesem Tutorial verwenden wir Modelle, um die Schemas zu erstellen.
_Benutzer.js _ :
const mongoose = require('mongoose') const Schema = mongoose.Schema; const { userImage } = require('../config/DefaultUserImage'); const authFunctions = require('../helper/authFunctions'); const userSchema = new Schema({ name: { type: Schema.Types.String, required: true, }, email: { type: Schema.Types.String, unique: true }, password: { type: Schema.Types.String, required: true }, address: { type: Schema.Types.String, required: true, }, education_qualification: { type: Schema.Types.String, required: true, }, dob: { type: Schema.Types.Date, required: true, }, job_title: { type: Schema.Types.String, required: true, }, photo: { type: Schema.Types.String, required: false, default: userImage }, contact_number: { type: Schema.Types.Number, required: true, }, }, { timestamps: true }) const User = mongoose.model('users', userSchema) module.exports = { getUsers: () => User.find(), storeUser: async userData => { const hashPassword = await authFunctions.createPassword(userData.password) const user = { name: userData.name, email: userData.email, password: hashPassword, address: userData.address, contact_number: userData.contact_number, education_qualification: userData.education_qualification, dob: userData.dob, job_title: userData.job_title } return new User(user).save(); }, updateUser: (userData, userId) => User.findByIdAndUpdate(userId, userData), findUserById: userId => User.findById(userId), findUserByEmail: userEmail => User.findOne({ email: userEmail }).exec(), deleteUser: userId => User.findByIdAndRemove(userId), removeUsers: () => User.deleteMany() }
#api-testing #apitestinginnode #tddwithnode #mocha #nodejs
medium.com
TDD (Test Driven Development) Entwicklung in Nodejs mit Mongodb & Express.
Testgetriebene Entwicklung (TDD) ist ein evolutionärer Entwicklungsansatz, der Test-First-Entwicklung kombiniert, bei der Sie einen Test schreiben, bevor Sie gerade genug Produktionscode schreiben, um diesen Test und Refactoring zu erfüllen. Einfach ausgedrückt werden Testfälle erstellt, bevor Code geschrieben wird.