我正在为 Angular JS 项目编写我的第一个单元测试,我想知道如何以易于理解和维护的方式进行布局。
例如,对于指令,到目前为止我发现的示例通常有一个指令文件,其中包含一个 describe()。在我看来,这很容易成为一个需要维护的大文件。
我认为每个指令都有一个文件更有意义,然后在该指令中对指令本身进行描述,例如 myDate 指令,文件名为“myDateDirectiveSpec.js”。这已经使事情更容易阅读,但是我仍然有点担心具有很多功能的指令。在下面的示例中,我添加了注释以指示我在哪里测试哪个功能,但没有更好的方法吗?
describe("myDate", function() {
var $compile, $rootScope;
var validDate, invalidDate, invalidDateFormat;
beforeEach(angular.mock.module('main'));
beforeEach(inject(
['$compile','$rootScope', function($c, $r) {
$compile = $c;
$rootScope = $r;
}]
));
// test function validDate
it("should check if the given date is a valid date", function() {
validDate = '31-8-2011';
expect(isValidDate(validDate)).toBe(true);
})
// test function formatDate
it("format the given date", function() {
validDate = '31-8-2011';
expect(formatDate(validDate)).toBe('31/8/2011');
})
// test function anotherFunction
it("....", function() {
validDate = '31-8-2011';
expect(anotherFunction(validDate)).toBe(true);
})
// test function anotherFunction
it("....", function() {
validDate = '31-8-2011';
expect(anotherFunction(validDate)).toBe(true);
})
// test function anotherFunction
it("....", function() {
validDate = '31-8-2011';
expect(anotherFunction(validDate)).toBe(true);
})
});
如果指令中有很多功能,我可以以某种更智能的方式将它们拆分出来,那么我在上面的示例中做了什么?