我有一个如下所示的测试套件:
(注意accountToPost
变量位于顶部(在第一个describe
块下方)
describe('Register Account', function () {
var accountToPost;
beforeEach(function (done) {
accountToPost = {
name: 'John',
email: 'email@example.com',
password: 'password123'
};
done();
});
describe('POST /account/register', function(){
describe('when password_confirm is different to password', function(){
//accountToPost is undefined!
accountToPost.password_confirm = 'something';
it('returns error', function (done) {
//do stuff & assert
});
});
});
});
我的问题是,当我尝试accountToPost
在嵌套的describe块中进行修改时,它是未定义的…
我该怎么做才能解决此问题?
将分配保留在原处,但将其包装在beforeEach
回调中,您的代码将执行:
beforeEach(function () {
accountToPost.password_confirm = 'something';
});
Mocha会加载并执行文件,这意味着describe
调用会 在 Mocha实际运行测试套件 之前立即 执行。这样便可以计算出已声明的测试集。
我通常只将函数和变量声明放在传递给的回调主体中describe
。这一切都 改变了
用于测试对象的状态属于在before
,beforeEach
,after
或afterEach
,或在测试内部自己。
另一件事知道的是,beforeEach
与afterEach
之前和回调后执行it
的呼叫 没有
回调到describe
呼叫。因此,如果您认为您的beforeEach
回调将在describe('POST /account/register', ...
不正确之前执行。它在之前执行it('returns error', ...
。
此代码应说明我在说什么:
console.log("0");
describe('level A', function () {
console.log("1");
beforeEach(function () {
console.log("5");
});
describe('level B', function(){
console.log("2");
describe('level C', function(){
console.log("3");
beforeEach(function () {
console.log("6");
});
it('foo', function () {
console.log("7");
});
});
});
});
console.log("4");
如果在此代码上运行mocha,您将看到数字以递增顺序输出到控制台。我已经按照测试套件的构建方式进行了结构化,但是添加了我建议的修复程序。当Mocha找出套件中存在哪些测试时,将输出数字0到4。测试尚未开始。其他数字在正确测试期间输出。
我得到以下错误时运行我的测试用例摩卡 有人知道为什么会这样吗? 包裹json physicalperson.spec.js 我所尝试的 我在SO中看到了一些线程,我也尝试了下面的代码,但出现了相同的错误。
这个版本规范的部署描述文件可在此下载:http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd
本章指定的 Java™ Servlet 规范要求 Web 容器支持部署描述文件。部署描述文件表达了应用开发人员、应用集成人员和 Web 应用部署人员之间的元素和配置信息。 对于 Java Servlet 2.4 和以后的版本,部署描述文件在 XML 模式文档中定义。 为了向后兼容到2.2版本的API编写的应用程序,Web 容器也需要支持2.2版本的部署描述文件。为了向后兼容2.3版本的API编写的
本文对用于描述模块的术语加以说明。 说明 对模块用途的简要说明。 状态(Status) 状态(Status)代表了此模块与Apache服务器结合的紧密程度;也就是说,有可能需要重新编译服务器以获得一个模块的功能。其可能的值有: MPM 一个多路处理模块。与其他类型的模块不同的是,必须在编译配置时进行选择,必须有且仅有一个MPM被静态编译到服务器中。此类型的模块负责基本的对请求的处理和指派。 Bas
ReferenceError:未定义测试 我被困在这里了。我该如何解决这个问题。还有一个问题。消化和摩卡有关系吗?请谁来帮我解决这个问题
刚刚通过Mac应用商店将Xcode更新为13.2。 我安装了额外的组件,我的项目不会再编译了: Xcode只是告诉我。我的应用程序中使用的Swift软件包似乎都无法生成,因为“必须在生成之前修复软件包解析错误”。 已尝试重新启动Xcode、更新macOS、清理派生数据、重置Swift包缓存和更新包版本,但均无效。 我想我会尝试重新安装Xcode,但是...其他人也有同样的问题吗?