如何为特定属性获取代码覆盖率?以新增AppTenantsCpgDisplay属性为例
为模型新增属性获取代码覆盖率的实现方案
你可以通过给新增的AppTenantsCpgDisplay(对应模型中的Display属性)赋值模拟GUID的方式满足代码覆盖率要求,具体实现如下:
测试代码示例
在测试类中定义模拟GUID集合,然后为目标模型属性赋值:
// 定义模拟的GUID集合 private static readonly IEnumerable<Guid> MockDisplayGuids = new List<Guid> { Guid.NewGuid(), Guid.NewGuid() }; // 测试方法覆盖属性的读写逻辑 [Test] public void AdvertOfferReadModel_DisplayProperty_Covered() { var model = new AdvertOfferReadModel(); // 覆盖属性set访问器 model.Display = MockDisplayGuids; // 覆盖属性get访问器(如果业务代码中有读取逻辑,这里也可以结合业务场景验证) Assert.That(model.Display, Is.EqualTo(MockDisplayGuids)); }
关键注意事项
- 由于你的
AdvertOfferReadModel中Display属性标记了[JsonProperty(Required = Required.Always)],测试时必须赋值,否则在序列化/反序列化场景下会抛出异常,同时这也能覆盖属性的set逻辑。 - 若业务代码中存在读取
Display属性的逻辑(比如根据GUID集合做业务判断),测试时需针对性覆盖这些场景,确保完整的代码覆盖率。 - 你之前写的
static private readonly IEnumerable<Guid> Display;是类字段定义,直接用它给模型属性赋值是可行的,但建议修改命名(如MockDisplayGuids),避免与模型属性名混淆。
内容的提问来源于stack exchange,提问作者duckgame
相关产品推荐
相关产品推荐

