我正在为比较日期的函数编写 Jasmine 单元测试。我想提供一个用于今天日期的假日期。因此,我正在监视Date窗口对象上的方法并返回预定义的日期。
这工作正常,但在我正在测试的函数中,我还从字符串中读取日期并调用new Date(yyyy, mm, dd)将它们转换为日期。发生这种情况时,这些值将替换为我提供的模拟日期。
这是一个例子:
var checkDate = function () {
return { today: new Date(), anotherDay: new Date(2016, 0, 1) }
};
var createDate = function (year, month, date) {
var overrideDate = new Date(year, month, date);
spyOn(window, 'Date').andCallFake(function () {
return overrideDate;
})
}
var dates;
describe("checkDate", function() {
beforeEach(function() {
createDate(2015, 11, 1);
dates = checkDate();
})
it("today has a value of 12/1/2015", function() {
expect(dates.today.toLocaleDateString()).toBe('12/1/2015');
});
it("anotherDay has a …Run Code Online (Sandbox Code Playgroud) 我需要创建一个数据表,我知道将要出现的行数,但列数会有所不同.该表将存在于剃刀模板中.
理想情况下,我会使用单个foreach循环迭代集合并在循环内部,我会为每个对象添加一列.
这是我现在使用它的方式,但这需要每行一个循环.有30行,这不是一个理想的解决方案.
<table>
<tr>
@foreach(var o in oCollection)
{
<td>@o.Name</td>
}
</tr>
<tr>
@foreach(var o in oCollection)
{
<td>@o.Id</td>
}
</tr>
<tr>
@foreach(var o in oCollection)
{
<td>@o.Address</td>
}
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
注意:我在我的示例中使用HTML表,但这不是必需的.只有数据显示在输出表中.
编辑:这是2个对象输出的小提琴示例.http://jsfiddle.net/rked00dr/.这是3个对象的示例.http://jsfiddle.net/rked00dr/2/