测试 Ember.Logger.error 个断言
Testing Ember.Logger.error assertions
我正在使用 Ember.Logger.error:
if (isInvalid) {
Ember.Logger.error('this is invalid');
}
我想在 qunit 中测试它:
assert.throws(() => myFunction(), /this is invalid/, 'error was thrown');
但是assert.throws
没有捕捉到错误。如果我将 Ember.Logger.error
替换为简单的 throw
语句,它就会这样做,但肯定有一种方法可以测试记录的 Ember 错误。有人认识路吗?
更新:
我制作了一个小插件,将此功能添加到 QUnit。你可以得到它 here.
好的,所以我研究了 Ember 中是如何完成的,并且我看到了测试它的实践:
- ember.js/packages/ember/tests/helpers/link_to_test.js
- ember.js/packages/ember/tests/routing/basic_test.js
下面是您可以用来在辅助单元测试中测试调用 Ember.Logger.error
的示例测试函数:
/* global Ember */
import { demo } from '../../../helpers/demo';
import { module, test } from 'qunit';
module('Unit | Helper | demo');
test('catching log', function(assert) {
assert.expect(1); // define how many assertions we expect
const oldError = Ember.Logger.error; // store original error function in variable
Ember.Logger.error = function(message) { // monkey patch with our custom function
assert.equal(message, 'this is invalid', 'error was thrown'); // our assertion
};
demo(); // actually call function
Ember.Logger.error = oldError; // restore original error function
});
我正在使用 Ember.Logger.error:
if (isInvalid) {
Ember.Logger.error('this is invalid');
}
我想在 qunit 中测试它:
assert.throws(() => myFunction(), /this is invalid/, 'error was thrown');
但是assert.throws
没有捕捉到错误。如果我将 Ember.Logger.error
替换为简单的 throw
语句,它就会这样做,但肯定有一种方法可以测试记录的 Ember 错误。有人认识路吗?
更新:
我制作了一个小插件,将此功能添加到 QUnit。你可以得到它 here.
好的,所以我研究了 Ember 中是如何完成的,并且我看到了测试它的实践:
- ember.js/packages/ember/tests/helpers/link_to_test.js
- ember.js/packages/ember/tests/routing/basic_test.js
下面是您可以用来在辅助单元测试中测试调用 Ember.Logger.error
的示例测试函数:
/* global Ember */
import { demo } from '../../../helpers/demo';
import { module, test } from 'qunit';
module('Unit | Helper | demo');
test('catching log', function(assert) {
assert.expect(1); // define how many assertions we expect
const oldError = Ember.Logger.error; // store original error function in variable
Ember.Logger.error = function(message) { // monkey patch with our custom function
assert.equal(message, 'this is invalid', 'error was thrown'); // our assertion
};
demo(); // actually call function
Ember.Logger.error = oldError; // restore original error function
});