最多测试没有参数的无效方法

本文关键字:无效 方法 参数 测试 | 更新日期: 2023-09-27 18:05:20

嗨,请让我知道如何为以下方法编写最小数量单元测试用例。任何帮助都将是感激的。提前感谢。

public void ConstructAddMappingQuery(IAnnotationMapping annotationMappings, 
                                     out string commandText, 
                                     out Dictionary<string, dynamic> parameters)
{
   commandText =@"Insert Into AnnotationMapping Values 
                 (@AnnotationSetupId, @WordToAnnotate, 
                  @Annotation, @CreatedDttm, @CreatedUserId, @ModifiedDate, 
                  @ModifiedUserId, @IsActive)";
   parameters = new Dictionary<string, dynamic>();
   parameters.Add("@WordToAnnotate", annotationMappings.WordToAnnotate);
   parameters.Add("@Annotation", annotationMappings.Annotation);
   parameters.Add("@ModifiedDate", annotationMappings.ModifiedDate);
   parameters.Add("@ModifiedUserId", annotationMappings.ModifiedUserId);
   parameters.Add("@AnnotationSetupId", annotationMappings.AnnotationSetupId);
   parameters.Add("@CreatedDttm", annotationMappings.CreatedDttm);
   parameters.Add("@CreatedUserId", annotationMappings.CreatedUserId);
   parameters.Add("@IsActive", 1);
}

寻找整个方法而不是存根。干杯!!!!!!!!!!!!

最多测试没有参数的无效方法

假设一个类像

public class AnnotationMappingQueryBuilder {
    public void ConstructAddMappingQuery(IAnnotationMapping annotationMappings,
                                 out string commandText,
                                 out Dictionary<string, dynamic> parameters) {
        commandText = @"Insert Into AnnotationMapping Values 
             (@AnnotationSetupId, @WordToAnnotate, 
              @Annotation, @CreatedDttm, @CreatedUserId, @ModifiedDate, 
              @ModifiedUserId, @IsActive)";
        parameters = new Dictionary<string, dynamic>();
        parameters.Add("@WordToAnnotate", annotationMappings.WordToAnnotate);
        parameters.Add("@Annotation", annotationMappings.Annotation);
        parameters.Add("@ModifiedDate", annotationMappings.ModifiedDate);
        parameters.Add("@ModifiedUserId", annotationMappings.ModifiedUserId);
        parameters.Add("@AnnotationSetupId", annotationMappings.AnnotationSetupId);
        parameters.Add("@CreatedDttm", annotationMappings.CreatedDttm);
        parameters.Add("@CreatedUserId", annotationMappings.CreatedUserId);
        parameters.Add("@IsActive", 1);
    }
}

你将只需要Moq接口。测试可能是这样的:

[TestClass]
public class UnitTest1 {
    [TestMethod]
    public void TestMethod1() {
        //Arrange
        var mock = Mock.Of<IAnnotationMapping>();
        var expectedCommandText = @"Insert Into AnnotationMapping Values 
             (@AnnotationSetupId, @WordToAnnotate, 
              @Annotation, @CreatedDttm, @CreatedUserId, @ModifiedDate, 
              @ModifiedUserId, @IsActive)";
        string commandText = null;
        Dictionary<string, dynamic> parameters = null;
        int expectedParameterCount = 8;
        var sut = new AnnotationMappingQueryBuilder();
        //Act
        sut.ConstructAddMappingQuery(mock, out commandText, out parameters);
        //Assert
        Assert.IsNotNull(commandText);
        Assert.AreEqual(expectedCommandText, commandText);
        Assert.IsNotNull(parameters);
        Assert.AreEqual(expectedParameterCount, parameters.Count);
        ///what ever else you want to assert for parameters
    }
}