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:
hjhan
2026-07-13 13:37:18 +08:00
parent d978f7048d
commit 02624abf75
3 changed files with 137 additions and 2 deletions
@@ -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
}
}