gpt4 book ai didi

c# - VS2012 中的代码覆盖率未显示用于 Dapper 的动态类型对象

转载 作者:太空宇宙 更新时间:2023-11-03 10:55:48 24 4
gpt4 key购买 nike

我们正在使用 VS2012 Ultimate(感谢 BizSpark!)并且我们已经开始进行集成测试以确保我们的 Dapper 查询在循环中与 DB 一起工作。我正在努力确保所有数据库相关类的代码覆盖率达到 100%。

在我们的一个类中,我们的 AddDelay() 函数测试的代码覆盖率报告显示,声明和初始化数据匿名对象的行未被覆盖,但它必须用于执行工作。传入了一个模拟对象,似乎一切正常,但我不明白为什么该方法的代码覆盖率不是 100%。

鉴于它是一个 super 简单的函数,并且 data 对象作为参数传递给执行函数,对于报告显示未涵盖的原因有何建议?

    public bool AddDelay(DelayInformationModel delay)
{
const string sql = @"INSERT INTO EquipmentDelay(EquipmentID, DelayID, StartTime, EndTime, Actual, Comment) VALUES (@EquipmentID, @DelayID, @StartTime, @EndTime, @Actual, @Comment)";

using (IDbConnection con = DataFactory.CreateOpenConnection())
{
var data = new
{
EquipmentID = delay.EquipmentID,
DelayID = delay.DelayCode,
StartTime = delay.StartTime,
EndTime = delay.EndTime,
Actual = delay.Actual,
Comment = (delay.Comment ?? "")
};

con.Execute(sql, data);
return true;
}

}

最佳答案

我觉得有问题
Comment = (delay.Comment ?? "")

delay.Comment 不为空,因此永远不会执行此检查。使用临时变量并在其中获取值

像这样

var a= delay.Comment;
var data = new
{
EquipmentID = delay.EquipmentID,
DelayID = delay.DelayCode,
StartTime = delay.StartTime,
EndTime = delay.EndTime,
Actual = delay.Actual,
Comment = a ?? ""
};

关于c# - VS2012 中的代码覆盖率未显示用于 Dapper 的动态类型对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19557181/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com