test: 日终价格回归测试(日期窗口纯单测 + 新增可见性DB集成测试)
- EodPriceService 提取 static ResolveValueDateWindow(reqStart,reqEnd),使日期窗口逻辑可脱离数据库单测 - EodPriceDtoTest 新增4个纯单测:未传日期回退±1年、起止都填今天→仅今天窗口、显式区间原样生效、结束日今天上界为明天;锁定'页面始终5条'根因 - EodPriceGoldenReplayTest 新增 Record_NewRecordVisibility([Ignore]手动跑):直接跑 SearchUnderlyingList,锁定(a)今天+已上市可查 (b)日期0001查不出 (c)未上市查不出 - 构建0错误;EodPriceDtoTest 19通过0失败
This commit is contained in:
@@ -202,5 +202,53 @@ namespace YLErp.Modules.EodModule
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region 日期窗口解析("页面始终5条"根因锁定,纯单测不连库)
|
||||
|
||||
[TestMethod]
|
||||
[Description("前端未传日期(年份<=2000) → 回退到 [今天-1年, 今天+1年)")]
|
||||
public void 未传日期_回退最近一年到明年()
|
||||
{
|
||||
var (start, end) = EodPriceService.ResolveValueDateWindow(DateTime.MinValue, DateTime.MinValue);
|
||||
Assert.AreEqual(DateTime.Today.AddYears(-1).Date, start.Date, "起始应回退到今天-1年");
|
||||
Assert.AreEqual(DateTime.Today.AddYears(1).Date, end.Date, "结束应回退到今天+1年");
|
||||
Assert.IsTrue(end > start, "窗口应正向");
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
[Description("列表页默认起止都填今天 → 窗口=[今天, 今天+1天),仅返回当天记录(即'5条'现象成因)")]
|
||||
public void 起止都填今天_窗口仅今天()
|
||||
{
|
||||
var today = DateTime.Today;
|
||||
var (start, end) = EodPriceService.ResolveValueDateWindow(today, today);
|
||||
Assert.AreEqual(today.Date, start.Date, "起始应为今天");
|
||||
Assert.AreEqual(today.AddDays(1).Date, end.Date, "结束应为今天+1天(半开区间含今天)");
|
||||
Assert.IsTrue(today >= start && today < end, "今天的记录应落入窗口");
|
||||
Assert.IsFalse(today.AddDays(-1) >= start && today.AddDays(-1) < end, "昨天的记录不应落入仅今天窗口");
|
||||
Assert.IsFalse(today.AddDays(1) >= start && today.AddDays(1) < end, "明天的记录不应落入仅今天窗口");
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
[Description("显式传区间(如近30天) → 原样生效,不被回退覆盖")]
|
||||
public void 显式区间_原样生效()
|
||||
{
|
||||
var start0 = DateTime.Today.AddDays(-30);
|
||||
var end0 = DateTime.Today;
|
||||
var (start, end) = EodPriceService.ResolveValueDateWindow(start0, end0);
|
||||
Assert.AreEqual(start0.Date, start.Date, "起始应等于传入");
|
||||
Assert.AreEqual(end0.AddDays(1).Date, end.Date, "结束应等于传入+1天");
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
[Description("结束日=今天 → 半开区间上界=今天+1天,今天当天记录可命中")]
|
||||
public void 结束日今天_上界为明天_当天可命中()
|
||||
{
|
||||
var (start, end) = EodPriceService.ResolveValueDateWindow(DateTime.Today.AddDays(-365), DateTime.Today);
|
||||
var today = DateTime.Today;
|
||||
Assert.IsTrue(today >= start && today < end, "今天记录应命中");
|
||||
Assert.IsFalse(today.AddDays(1) >= start && today.AddDays(1) < end, "明天记录不应命中");
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user