VS2012의 코드 범위는 Dapper에서 사용하는 동적 유형 지정 객체를 표시하지 않습니다.

c# dapper integration-testing visual-studio-2012

문제

우리는 VS2012 Ultimate (BizSpark에 감사드립니다!)를 사용하고 있습니다. Dapper 쿼리가 루프의 DB와 함께 작동하는지 확인하기 위해 통합 테스트를 시작했습니다. 모든 데이터베이스 관련 클래스에 대해 100 % 코드 커버리지를 보장하려고합니다.

우리 클래스 중 하나에서 AddDelay() 함수에 대한 테스트의 코드 커버리지 보고서는 데이터 익명 객체를 선언하고 초기화하는 라인은 다루지 않지만 Execute가 작동해야한다는 것을 보여줍니다. 전달되는 모의 객체가 있고 모든 것이 제대로 작동하는 것 같지만 코드 적용 범위가 그 메소드에 대해 100 %가 아닌 이유를 알 수 없습니다.

수퍼 단순 함수이고 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;
        }

    }

수락 된 답변

나는 문제가 있다고 생각한다.
댓글 = (지연. 댓글? "")

delay.Comment가 null이 아니기 때문에이 검사는 실행되지 않습니다. 임시 변수를 사용하고 값을 가져옵니다.

이 같은

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


아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow