如何在 QUnit 中测试自定义断言
How to test custom assertions in QUnit
我想测试我为 QUnit 编写的自定义断言。在 QUnit home page it says it can test its own assertions 上,但它只显示了如何测试断言是否通过。即它似乎没有测试断言应该失败的条件。有没有什么方法可以捕捉到失败,并让它通过测试?
说我想测试 this custom assertion:
QUnit.assert.mod2 = function( value, expected, message ) {
var actual = value % 2;
this.pushResult( {
result: actual === expected,
actual: actual,
expected: expected,
message: message
} );
};
上面的断言可以这样使用:
QUnit.test( "mod2", function( assert ) {
assert.mod2( 2, 0, "2 % 2 == 0" );
assert.mod2( 3, 1, "3 % 2 == 1" );
});
所以我想编写一个测试来断言 mod2 测试按预期工作。
tests for QUnit assertions 具有以下测试 .ok()
断言按预期通过的测试:
QUnit.test( "ok", function( assert ) {
assert.ok( true );
assert.ok( 1 );
assert.ok( "1" );
assert.ok( Infinity );
assert.ok( {} );
assert.ok( [] );
} );
但是当断言成功失败时我该如何测试呢?测试可能看起来像这样:
QUnit.test( "test assert.mod2", function( assert ) {
assert.mod2( 2, 0, "2 % 2 == 0" );
assert.fails (assert.mod2( 2, 1, "2 % 2 == 0" ));
assert.mod2( 3, 1, "3 % 2 == 1" );
assert.fails (assert.mod2( 3, 0, "3 % 2 == 1" ));
});
我编了 .fails()
来演示测试的样子。
按照 source code:
可以这样做
QUnit.module( "failing assertions", {
beforeEach: function( assert ) {
var originalPushResult = assert.pushResult;
assert.pushResult = function( resultInfo ) {
// Inverts the result so we can test failing assertions
resultInfo.result = !resultInfo.result;
originalPushResult( resultInfo );
};
}
} );
QUnit.test( "ok", function( assert ) {
assert.ok( false );
assert.ok( 0 );
assert.ok( "" );
assert.ok( null );
assert.ok( undefined );
assert.ok( NaN );
} );
我想测试我为 QUnit 编写的自定义断言。在 QUnit home page it says it can test its own assertions 上,但它只显示了如何测试断言是否通过。即它似乎没有测试断言应该失败的条件。有没有什么方法可以捕捉到失败,并让它通过测试?
说我想测试 this custom assertion:
QUnit.assert.mod2 = function( value, expected, message ) {
var actual = value % 2;
this.pushResult( {
result: actual === expected,
actual: actual,
expected: expected,
message: message
} );
};
上面的断言可以这样使用:
QUnit.test( "mod2", function( assert ) {
assert.mod2( 2, 0, "2 % 2 == 0" );
assert.mod2( 3, 1, "3 % 2 == 1" );
});
所以我想编写一个测试来断言 mod2 测试按预期工作。
tests for QUnit assertions 具有以下测试 .ok()
断言按预期通过的测试:
QUnit.test( "ok", function( assert ) {
assert.ok( true );
assert.ok( 1 );
assert.ok( "1" );
assert.ok( Infinity );
assert.ok( {} );
assert.ok( [] );
} );
但是当断言成功失败时我该如何测试呢?测试可能看起来像这样:
QUnit.test( "test assert.mod2", function( assert ) {
assert.mod2( 2, 0, "2 % 2 == 0" );
assert.fails (assert.mod2( 2, 1, "2 % 2 == 0" ));
assert.mod2( 3, 1, "3 % 2 == 1" );
assert.fails (assert.mod2( 3, 0, "3 % 2 == 1" ));
});
我编了 .fails()
来演示测试的样子。
按照 source code:
可以这样做QUnit.module( "failing assertions", {
beforeEach: function( assert ) {
var originalPushResult = assert.pushResult;
assert.pushResult = function( resultInfo ) {
// Inverts the result so we can test failing assertions
resultInfo.result = !resultInfo.result;
originalPushResult( resultInfo );
};
}
} );
QUnit.test( "ok", function( assert ) {
assert.ok( false );
assert.ok( 0 );
assert.ok( "" );
assert.ok( null );
assert.ok( undefined );
assert.ok( NaN );
} );