我正试着用摩卡和柴对我的猫鼬模型做一个简单的测试
// Mock user
var testUser = new User({
companyID: "1",
username: "mockUser",
password: "password",
email: "a@valid.email",
});
// Create new user
it('Should add a new user with a hashed password to DB' , (done) => {
User.addUser(testUser, (err, user) => {
if(err) console.log(err);
else {
assert.typeOf(user, 'Object');
assert.equal(user.username, "mockUser");
expect(user.password).to.not.equal("password");
}
done();
});
});
错误:超过2000毫秒的超时时间。对于异步测试和挂钩,确保调用“done()”;如果返回promise,请确保它已解决
我想摩卡已经改变了,因为它一直在与以前的项目合作。我错过了什么?
模型方法:
module.exports.addUser = function(newUser, callback) {
bcrypt.genSalt(10, (err, salt) => {
bcrypt.hash(newUser.password, salt, (err, hash) => {
if (err) throw err;
newUser.password = hash;
newUser.save(callback);
});
});
}
忘记了需要应用程序本身。
const app = require('../app');
有时,当单元测试意味着在数据库中创建对象时,需要超过2秒的默认超时时间。尝试启动mocha,增加超时时间,看看它是否有效。
mocha --timeout 10000
我正在尝试从请求模块测试GET HTTP方法: 下面是我如何测试 部分的: 但是,我没有找到测试catch部分的方法(当它给出错误并且响应状态不是>=400)。 有什么建议吗? 它也将帮助我解决这个问题,一个简单的例子,另一个代码测试一个承诺的catch部分。
我正在使用mocha和chai对AngularJS服务执行一些单元测试。该服务具有不同的功能,每个功能都返回一个promise。 我面临的问题是,测试不是在断言之前等待promise值得到解决。我知道做()回调可以用摩卡。所以,我试着用它。但这也给了我一个错误。这是代码: 因此,现在的问题是测试没有失败(它应该失败)。相反,它只是超时并给我一个错误:“超时超过2000ms。请确保在此测试中调用了d
问题内容: 在阅读教程时,通常会在模式和模型之间进行区分,特别是在处理mongoose / mongodb时。由于在该系统下似乎不存在“模型”,因此移植到Postgresql会有些混乱。两种方法有什么区别? 例如,此行的postgres / sql ORM等价于什么? (猫鼬和express.js): 问题答案: 在猫鼬中,模式表示特定文档的结构,可以是完整文档,也可以是文档的一部分。这是表达期望
在前端,我有3个层次结构。 顶层显示一个测试摘要,包含统计信息,如%通过/失败、各种标签、运行标识等。 第二级由测试套件的各个部分组成,这些部分可以通过顶级运行id访问。其中包含测试的名称,特定的测试通过/失败。 第三级是实际测试本身,包括报告、通过/失败状态等。 我使用的是平均堆栈,我想知道使用1、2或3种不同的Mongoose模型在MongoDB中存储数据的利弊。我知道在数组中使用嵌入式文档的
问题内容: Mocha尝试在默认情况下查找测试文件,如何指定另一个目录,例如? 问题答案: 编辑:不建议使用此选项:https://mochajs.org/#mochaopts 如果要通过仍然仅在命令行上运行但要在文件夹而不是中运行测试来执行此操作,请在文件中创建一个文件,其中包含以下内容: 如果要运行该文件夹和子目录中的所有内容,请将其放入 是通过命令行传递的参数,因此使第一行也就是您要更改测试
我正在使用node.js和摩卡单元测试,我希望能够通过npm运行测试命令。当我在测试文件夹中运行摩卡测试时,测试成功运行。但是,当我运行npm测试时,测试给我一个错误。 下面是我的package.json的一个片段: 有人知道为什么npm测试会给我一个错误,但是mocha测试运行正常吗? 谢谢