【发布时间】:2016-07-06 08:38:15
【问题描述】:
我创建了一个依赖于用于格式化日期的时刻的绑定处理程序。我想使用 Jasmine 对这个绑定处理程序进行单元测试。
以下是我的绑定处理程序代码:
define(['knockout', 'moment'], function (ko, moment) {
'use strict';
ko.bindingHandlers.date = {
update: function (element, dateValue, allBindings) {
var date = ko.utils.unwrapObservable(dateValue()) || '-',
format = allBindings.get('format'),
formattedDate = function () {
return moment(date).format(format);
};
ko.bindingHandlers.text.update(element, formattedDate);
}
};
return {
dateBinding: ko.bindingHandlers.date
};
});
我正在创建我的规范文件如下:
define(['testUtils', 'jquery', 'knockout'], function (testUtils, $, ko) {
'use strict';
ddescribe('utils/date.binding', function () {
var testee;
beforeEach(function (done) {
testUtils.loadWithCurrentStubs('utils/date.binding', function (dateUtils) {
testee = dateUtils;
done();
});
});
afterEach(function () {
testUtils.reset();
});
describe('ko.bindingHandlers.date', function () {
var element = document.createElement();
it('should be true', function () {
expect(true).toBe(true);
});
});
});
});
不确定从哪里开始测试以及需要测试哪些部分。
【问题讨论】:
-
一个相当广泛的问题...您可能想查看 Knockout 如何测试其自己的默认绑定:github.com/knockout/knockout/tree/master/spec/defaultBindings
-
感谢@user3297291 这个参考对我有用:)
-
这些测试在 phantom JS 1.9.8 中失败
标签: unit-testing knockout.js jasmine karma-jasmine bindinghandlers