Jasmine测试 - 提供测试用例

时间:2016-10-06 10:36:05

标签: javascript unit-testing jasmine

我刚开始使用jasmine(版本2.4.1)来测试我的javascript代码。在Visual Studio 2015工作。我有一个函数,我想检查多个输入 - 例如TestCase中的nUnit

小例子:

我想测试的功能:

this.daysInMonth = function(month, year) {
   return new Date(year, month + 1, 0).getDate();
} 

这是我的测试文件:

/// <reference path="~/bin/Debug/Content/js/knockout.js" />
/// <reference path="~/bin/Debug/Content/js/reporttimefilter/ReportTimeFilter.js" />
/// <reference path="~/Scripts/jasmine/jasmine-every.js" />

var numOfDaysTestcases = [
    { year: 2016, month: 9, expectedDays: 31 },
    { year: 2016, month: 1, expectedDays: 29 }
];

every(numOfDaysTestcases, function (index, testcase) {
    describe('each test case', function () {
        var report;

        beforeEach(function () {
            report = new ReportFilterViewModel();
        });

        it('get current month number of day', function () {
            expect(report.daysInMonth(testcase.year, testcase.month)).toBe(testcase.expectedDays);
        });
    });
});

该示例基于此link。当我运行我的测试时,我得到了

  

未找到规格

打开的Chrome标签页和

  

不确定:测试未运行

作为测试结果。

以下只使用一个对象的测试有效且成功 - 所以我认为它是every函数的一部分:

describe('each test case', function () {
    var report;

    beforeEach(function () {
       report = new ReportFilterViewModel();
    });

    var testcase = { year: 2016, month: 9, expectedDays: 31 };

    it('get current month number of day', function () {
       expect(report.daysInMonth(testcase.year, testcase.month)).toBe(testcase.expectedDays);
    });
});

我的问题是我做错了什么?我错过了什么?

0 个答案:

没有答案