C# 无参数的最小起订量测试方法

C# 无参数的最小起订量测试方法,c#,unit-testing,moq,C#,Unit Testing,Moq,您好,请让我知道如何为下面的方法编写moq单元测试用例。任何帮助都将不胜感激。提前感谢 public void ConstructAddMappingQuery(IAnnotationMapping annotationMappings, out string commandText, out Dictionary<string, dyna

您好,请让我知道如何为下面的方法编写moq单元测试用例。任何帮助都将不胜感激。提前感谢

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);
    }
}
您只需要接口的最小起订量。测试可能是这样的

[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
    }
}

请先编辑您的问题,勾选:这对您有用吗:?请在您的帖子中澄清您正在寻找的特定帮助以及您想要测试的内容。在当前状态下,这是为我编写代码的下一个级别请求通常这样的请求至少有关于应该做什么的信息…可能重复为什么您认为您需要Moq在这里?