【IT168技术】在上一讲中,我们学习了如何通过jasmine的BDD驱动开发框架,一边编写单元测试用例一边按照MVC的架构编写了数据模型层,控制层和表现层的基本代码。在本文中,将继续介绍如下的几个方面内容。
1、如何在记事列表页面和记事编辑页面之间通过URL和参数传递信息。
2、如何在记事的编辑页面中加载一个记事内容进行编辑。
3、如何保存或者编辑一个记事内容。
我们预期完成本讲后,能设计出如下功能的界面:
步骤一、重构
下面我们开始重构之旅。之前我们的数据访问上下文在调用jStorage插件时,是直接引用了jQuery的类库的。我们现在进行一点修改,当访问数据模块dataContext时,将jQuery作为参数进行传递,如下:
Notes.dataContext = (function ($) {
// ……….
} (jQuery));
除此以外,我们将之前在程序中对在localstorage中保存的键值的名称去掉,原来是这样的:
var notesListStorageKey = "Notes.NotesList";
我们则可以通过init方法将这个值以参数的形式传递到dataContext中,如下所示:
var init = function (storageKey) {
notesListStorageKey = storageKey;
loadNotesFromLocalStorage();
};
当然,这个测试用例也很简单,我们稍微修改一下就可以了,注意修改的是
AppSpec.js文件,如下代码所示:
describe("Data Context tests", function () {
var notesListStorageKey = "Notes.NotesListTest";
// 省略其他部分
it("Returns dummy notes saved in local storage", function () {
Notes.testHelper.createDummyNotes();
//从localstorage中加载记事
Notes.dataContext.init(notesListStorageKey);
var notesList = Notes.dataContext.getNotesList();
expect(notesList.length > 0).toBeTruthy();
});
});
var notesListStorageKey = "Notes.NotesListTest";
// 省略其他部分
it("Returns dummy notes saved in local storage", function () {
Notes.testHelper.createDummyNotes();
//从localstorage中加载记事
Notes.dataContext.init(notesListStorageKey);
var notesList = Notes.dataContext.getNotesList();
expect(notesList.length > 0).toBeTruthy();
});
});