Это приложение BookDonation, и я пытаюсь протестировать свой код с помощью Chai. Я не знаю, как это сделать, и если я его запускаю, это выдает мне ошибку.
getBook (bookName): Возвращает объект книги, если он существует, в противном случае null
getBooksWIthPageCountMoreThanX (pageCount): Возвращает все книги, у которых pageCount больше, чемзаданное количество страниц.Например.Если пользователь вызывает функцию с pageCount = 1000.Должны быть возвращены все книги с числом страниц> 1000
getAuthorBooks (автор): Возвращает все книги, созданные этим конкретным автором.Примечание: некоторые книги имеют более одного автора.Вы также должны учитывать их и возвращать.
getAuthorsBookCount (): Возвращает карту, которая содержит имя автора и количество книг, созданных ими.
BooksRepo класс
class BooksRepo {
constructor() {
this.fse = require('fs-extra');
this.catalogFilePath = '../data/catalog.books.json';
}
async readFileAsync(filePath) {
let data = await this.fse.readFile(filePath);
let parsedData = await JSON.parse(data);
return parsedData;
}
async getBook(bookName) {
let books = await this.readFileAsync(this.catalogFilePath);
let book = books.find(b => b.title == bookName);
return book;
}
async getBooksWIthPageCountMoreThanX(pagecount){
let books = await this.readFileAsync(this.catalogFilePath);
let book = books.find(b => b.pageCount > pagecount);
return book;
}
async getAuthorBooks(author){
let books = await this.readFileAsync(this.catalogFilePath);
let book = books.find(b => b.authors.contains(author));
return book;
}
async getAuthorsBookCount(){
let authArray = [];
let authCountArray = [];
for (let i = 0; i < inputJson.length; i++) {
authArray = inputJson[i].authors;
for (let j = 0; j < authArray.length; j++) {
authCountArray[authArray[j]] = ((authCountArray[authArray[j]] === undefined) ? 0 : authCountArray[authArray[j]]) + 1;
}
}
return authCountArray[authName];
}
async getBooksbyCatagory(category){
let books = await this.readFileAsync(this.catalogFilePath);
let book = books.find(b => b.categories == category);
return book;
}
}
module.exports = BooksRepo ;
приложение класс
let expect = require('chai').expect
let BooksRepo = require('./BooksRepo');
let booksRepo = new BooksRepo();
describe("BooksRepo class test case" , ()=>{
it('search for book ', () => {
expect(booksRepo.getBook('Code Generation in Action')).to.equal()
});
it('get book with page count ', () => {
expect(booksRepo.getBooksWIthPageCountMoreThanX(1000)).to.equal(null)
});
it('get book with page count ', () => {
expect(booksRepo.getAuthorBooks('Charlie Collins')).to.equal('Charlie Collins')
});
it('get author and number of books he wrote ', () => {
expect(booksRepo.getAuthorsBookCount().to.equal()
});
it('get Books by Catagory ', () => {
expect(booksRepo.getBooksbyCatagory().to.equal()
});
});
catalogFile: пример структуры
[
{
"_id": 1,
"title": "Unlocking Android",
"isbn": "1933988673",
"pageCount": 416,
"publishedDate": {
"$date": "2009-04-01T00:00:00.000-0700"
},
"thumbnailUrl": "https://s3.amazonaws.com/AKIAJC5RLADLUMVRPFDQ.book-thumb-images/ableson.jpg",
"shortDescription": "Unlocking Android: A Developer's Guide provides concise...",
"longDescription": "Android is an open source mobile phone platform based on the Linux operating ...",
"status": "PUBLISH",
"authors": [
"W. Frank Ableson",
"Charlie Collins",
"Robi Sen"
],
"categories": [
"Open Source",
"Mobile"
]
},