Intern JS - 测试定义之前的异步挂钩?
Intern JS - asynchronous hook before test definition?
我想在定义测试之前执行异步操作。例如,加载 jsdom
环境。
这样做时,实习生运行 0 次测试。
这样做的正确方法是什么?
我不能在配置本身中执行此操作,因为需要加载配置才能让实习生找到 jsdom
.
我的实习生配置加载了以下文件:
define( [
"intern/dojo/node!jsdom"
], function(
jsdom
)
{
"use strict";
var body = "";
var scripts = [];
jsdom.env( body, scripts, function( err, window )
{
define( [
"./test_MyRenderer",
], function()
{
} );
} );
} );
test_Renderer,定义实际测试
define( [
"intern!bdd",
"intern/chai!expect",
"src/Renderer"
], function(
bdd,
expect,
Renderer
)
{
"use strict";
bdd.describe( "Renderer", function()
{
it( ...
it( ...
} );
实习生配置文件可以有 setup
和 teardown
方法,就像测试套件一样。这些将是 运行 测试开始之前和测试结束之后。这是一个官方的,但目前还没有完整记录的功能。
感谢@jason0x43,我发现了 config.setup
。不幸的是,这是在加载套件之后执行的,这意味着我仍然必须在 before 挂钩中加载源代码。为了完整起见,这是我的解决方案。
在实习生配置中:
cfg.setup = function()
{
return new Promise( function( resolve, reject )
{
require( [
"intern/dojo/node!jsdom"
], function(
jsdom
)
{
var body = "";
var scripts = [];
jsdom.env( body, scripts, function( err, window )
{
global.document = window.document;
resolve();
} );
} );
} );
};
我的测试套件:
define( [
"intern!bdd",
"intern/chai!expect",
], function(
bdd,
expect,
)
{
"use strict";
bdd.describe( "Renderer", function()
{
var RendererClass;
bdd.beforeEach( function()
{
return new Promise( function( resolve )
{
require( [ "src/Renderer" ], function( Renderer )
{
RendererClass = Renderer;
resolve();
} );
} );
} );
it( ... var subject = new Renderer(); ...
it( ...
} );
我想在定义测试之前执行异步操作。例如,加载 jsdom
环境。
这样做时,实习生运行 0 次测试。
这样做的正确方法是什么?
我不能在配置本身中执行此操作,因为需要加载配置才能让实习生找到 jsdom
.
我的实习生配置加载了以下文件:
define( [
"intern/dojo/node!jsdom"
], function(
jsdom
)
{
"use strict";
var body = "";
var scripts = [];
jsdom.env( body, scripts, function( err, window )
{
define( [
"./test_MyRenderer",
], function()
{
} );
} );
} );
test_Renderer,定义实际测试
define( [
"intern!bdd",
"intern/chai!expect",
"src/Renderer"
], function(
bdd,
expect,
Renderer
)
{
"use strict";
bdd.describe( "Renderer", function()
{
it( ...
it( ...
} );
实习生配置文件可以有 setup
和 teardown
方法,就像测试套件一样。这些将是 运行 测试开始之前和测试结束之后。这是一个官方的,但目前还没有完整记录的功能。
感谢@jason0x43,我发现了 config.setup
。不幸的是,这是在加载套件之后执行的,这意味着我仍然必须在 before 挂钩中加载源代码。为了完整起见,这是我的解决方案。
在实习生配置中:
cfg.setup = function()
{
return new Promise( function( resolve, reject )
{
require( [
"intern/dojo/node!jsdom"
], function(
jsdom
)
{
var body = "";
var scripts = [];
jsdom.env( body, scripts, function( err, window )
{
global.document = window.document;
resolve();
} );
} );
} );
};
我的测试套件:
define( [
"intern!bdd",
"intern/chai!expect",
], function(
bdd,
expect,
)
{
"use strict";
bdd.describe( "Renderer", function()
{
var RendererClass;
bdd.beforeEach( function()
{
return new Promise( function( resolve )
{
require( [ "src/Renderer" ], function( Renderer )
{
RendererClass = Renderer;
resolve();
} );
} );
} );
it( ... var subject = new Renderer(); ...
it( ...
} );