`

Javascript 测试框架之 隐式声明 之 describe

阅读更多
为什么使用 javascript 测试框架时,没有显式导入 describe,却可以直接使用:?

https://stackoverflow.com/questions/12209582/the-describe-keyword-in-javascript

问题:
So I am a newbie in javascript and i had been going through some one else's code and I found this..
我是 javascript  的新手,我遇到了别人写的代码如下:

describe('deviceready', function() {
    it('should report that it fired', function() {
        spyOn(app, 'report');
        app.deviceready();
        expect(app.report).toHaveBeenCalledWith('deviceready');
    });
});



What I don't understand is: What exactly does the describe keyword do?
我不明白的是:describe 关键字到底做了什么?


回答:
Describe is a function in the Jasmine testing framework. It simply describes the suite of test cases enumerated by the "it" functions.
Describe 是 Jasmine 测试框架的一个函数。它只是描述了一组用 it 函数枚举的测试用例。

Also used in the mochajs framework.
Describe 也被用在了 mochajs 测试框架中。



Describe is not part of Javascript, it is a function defined in the library you used (namely Jasmine)
Describe 不属于原生 Javascript 的一部分,它是定义在 Jasmine 框架的类库中。

http://jasmine.github.io/


--------------------------------------
引用

"A test suite begins with a call to the global Jasmine function describe with two parameters: a string and a function. The string is a name or title for a spec suite - usually what is being tested. The function is a block of code that implements the suite."

来源:
http://jasmine.github.io/2.0/introduction.html



-------------------------------------------------------


https://www.bignerdranch.com/blog/why-do-javascript-test-frameworks-use-describe-and-beforeeach/


-------------------------------------------------------
原理:

Nodejs Global Functions

https://stackoverflow.com/questions/29544417/nodejs-global-functions

我有一个非常基础的函数,在 functions.js 文件中:
// functions.js
function echo(input){
    process.stdout.write(echo);
}


我在另一个文件中使用它:
// another_file.js
echo("hello!");



然后在 mainFile 文件中运行:

// main_file.js
require("functions.js");
require("another_file.js");





结果出错了:

ReferenceError: echo is not defined



Is there a way for me to make a function that is global like that without havingin to use exports?

有没有一个方法,可以不使用 exports 关键字,而使这个函数可以全局访问?


回答:

Inside functions.js you'll have access to node's global variable, which is like the window variable in a browser. As Plato suggested in a comment, you can add this to the global by simply doing echo = function echo(input){ ... }. However, this will throw an error if you're using strict mode, which is intended to catch common mistakes (like accidentally creating global variables).

在 functions.js 文件中,你可以访问 nodejs 的全局变量 global,
这跟浏览器里面的 window 变量差不多。

像 Plato 建议的是,你可以将它添加到 gobal 中,通过以下方法:


echo = function echo(input){ 
   process.stdout.write(echo);
};

// 注意:echo 变量前,没有任何修饰符。


但是,如果在 strict 模式下,这会报错。

-------------------------------------------------

One way to safely add echo as a global is to add it to the global global variable.
一个安全的方法是把 echo 添加到 global 变量中:


"use strict";

global.echo = function echo(input) {
    process.stdout.write(input);
}





https://stackoverflow.com/questions/29544417/nodejs-global-functions



























-
分享到:
评论

相关推荐

    简单灵活有趣的javascript测试框架,用于nodejs浏览器.zip

    本压缩包文件“简单灵活有趣的javascript测试框架,用于nodejs浏览器.zip”显然是关于JavaScript测试框架的资源,特别是针对Node.js环境和浏览器环境的测试。 提到“简单灵活有趣”,这很可能是指Mocha测试框架。...

    JavaScript 自动化测试框架 Intern.zip

    JavaScript 自动化测试框架 Intern 是一个强大的工具,用于确保 JavaScript 应用程序的质量和稳定性。在现代软件开发中,测试是不可或缺的一部分,特别是在JavaScript这样的动态语言中,由于其灵活的语法,测试显得...

    lua单元测试框架测试用例实例

    Busted是一个流行的Lua单元测试框架,它提供了简洁的语法和丰富的功能,使得编写和运行测试用例变得简单易行。Busted的主要特点包括: 1. **断言库**:Busted提供了一套丰富的断言函数,如`assert.is_true`,`...

    Go-Ginkgo是一个BDD风格的Go测试框架旨在帮助您有效地编写富有表现力的综合测试

    Go-Ginkgo是一个专为Go语言设计的行为驱动开发(BDD)测试框架,它提供了丰富的结构和表达性,使得测试代码更加清晰、易读。BDD测试方法鼓励开发者以业务逻辑为导向来编写测试,使非技术人员也能理解测试的目的。...

    Jest来自facebook的JavaScript测试

    **Jest:Facebook的JavaScript测试框架** Jest是一款由Facebook开发的开源JavaScript测试框架,它在测试领域中因其全面的功能和易用性而备受推崇。Jest的核心设计理念是让单元测试、集成测试以及快照测试变得简单且...

    RSepc rails 测试框架介绍

    RSepc 是一款基于 Ruby 的行为驱动开发(BDD)测试框架,它被广泛应用于 Rails 应用程序的测试。RSpec 提供了一种清晰且简洁的方式来编写可读性强的测试代码,使得测试用例更像是对软件行为的规范描述,而不是简单的...

    linux-shpec一个shell测试框架

    "shpec"就是一个专为Shell脚本设计的测试框架,它提供了一种简洁而强大的方式来编写测试用例,确保脚本的行为符合预期。 Shpec的核心概念基于RSpec,这是一个广泛应用于Ruby社区的BDD(行为驱动开发)测试框架。它...

    Watir测试框架介绍

    Watir,全称为Web Application Testing In Ruby,是一个开源的自动化测试框架,主要用于Web应用程序的测试。它允许开发者使用Ruby语言编写测试脚本来控制浏览器,模拟用户的行为,进行功能性和回归性测试。Watir的...

    mocha-should-karma-examples:带有 mocha 测试框架的 javascript 测试框架示例、应该断言库和浏览器基础测试框架 karma

    在这个项目中,`mocha-should-karma-examples` 提供了一套使用 JavaScript 编写的单元测试示例,它结合了三个关键工具:Mocha(测试框架)、Should.js(断言库)和 Karma(浏览器测试运行器)。下面将详细阐述这三个...

    JavaScript单元测试Jasmine源代码

    Jasmine是一款流行的JavaScript测试框架,尤其适用于前端开发者,它提供了丰富的断言库和易于理解的语法,使得JavaScript的单元测试变得简单且高效。 Jasmine的核心理念在于“行为驱动开发”(Behavior Driven ...

    cavyRN跨平台集成测试框架

    `cavy` 是一个轻量级的、易于使用的JavaScript测试框架,专为React Native应用设计,旨在提供跨平台的集成测试解决方案。它简化了移动应用的测试流程,使得开发者能够快速地编写和执行针对用户界面和组件功能的测试...

    事件驱动的PHP测试框架

    测试用例可以通过`describe()`和`it()`方法来组织,分别代表测试上下文和具体测试行为。 3. **事件系统**:作为事件驱动的框架,Peridot允许用户在测试生命周期的不同阶段注册监听器。例如,可以在测试开始前、每个...

    Enzyme:React的JavaScript测试工具集.zip

    虽然Enzyme可以独立使用,但它常与另一个流行的JavaScript测试框架Jest结合使用,提供更加完整的测试解决方案。Jest提供断言库、模拟函数等功能,而Enzyme则专注于React组件的处理。两者结合可以实现快速且全面的...

    swift-Quick是Swift和Objective-C的行为驱动开发测试框架

    **Swift-Quick:Swift与Objective-C的BDD测试框架** Quick是一款强大的行为驱动开发(Behavior-Driven Development, BDD)测试框架,专为Swift和Objective-C编程语言设计。它的核心理念在于通过简洁、易读的语法,...

    Objective-C单元测试框架Cedar.zip

    Cedar 是 Objective-C 上 BDD 风格的单元测试框架。describe(@"Example specs on NSString", ^{  it(@"lowercaseString returns a new string with everything in lower case", ^{  [@"FOOBar" ...

    Go-GoSpec-一个Go编程语言BDD风格测试框架

    在GoSpec中,你可以用一种声明式的方式来编写测试,这种方式与传统的单元测试相比,更注重表达测试的意图。 GoSpec的核心概念是“Spec”(规范),它代表了一个测试场景。你可以创建一系列的Specs来描述你的代码...

    javascriptTest:javascript测试模板

    "javascriptTest:javascript测试模板" 提供了一个用于测试JavaScript代码的框架,帮助开发者确保他们的JavaScript代码按照预期工作。 JavaScript测试对于软件开发至关重要,因为它能够确保代码的质量,预防错误,并...

    JSTest:带有测试框架示例的示例Node项目

    **JavaScript测试框架详解** 在Node.js开发中,测试是确保代码质量、稳定性和可维护性的重要环节。"JSTest:带有测试框架示例的示例Node项目" 提供了一个学习和实践JavaScript测试的起点。这个项目包含了如何使用...

    Mocha是一个JS单元测试工具

    总的来说,Mocha 是一个强大且易用的 JavaScript 单元测试框架,它的灵活性和全面的功能使得它成为开发者进行 JavaScript 测试的首选工具之一。通过深入理解和熟练使用 Mocha,可以有效提升项目的测试覆盖率和代码...

Global site tag (gtag.js) - Google Analytics