C# 在C中使用CodeDom根据其签名为方法生成测试用例

C# 在C中使用CodeDom根据其签名为方法生成测试用例,c#,C#,考虑下面的代码片段 Assembly asm = Assembly.LoadFile(DLL_Path); Type t = asm.GetType(DLL_NameSpace.MyClass, false, true); clsMethodInvoke mi = new clsMethodInvoke(); foreach (MemberInfo oMember in t.GetMembers(mi.GetFilter())) {

考虑下面的代码片段

Assembly asm = Assembly.LoadFile(DLL_Path);
Type t = asm.GetType(DLL_NameSpace.MyClass, false, true);
clsMethodInvoke mi = new clsMethodInvoke();
foreach (MemberInfo oMember in t.GetMembers(mi.GetFilter()))
{
                                //code here
}
这些是以下变量中的值

t = {Name = "Class1" FullName = "a.Class1"}
oMember = {Int32 add(Int32, Int32)}
现在,根据这些值,我需要生成基于NUnit的测试用例,如下所示

[Test()]
public virtual void Testadd1() {
    Class1 Class1 = new Class1();

    int a = -1; //random values are stored here
    int b = 2147483647; //random values are stored here

}

因此,在程序集中具有类的类型时,我希望为每个方法生成测试用例,如上所示。我如何生成这样的测试用例?

您看过使用T4吗

第条:

模板:

编辑:

关于如何构造代码的技术细节,我不确定您在提到以下内容时的意思:

Assembly asm = Assembly.LoadFile(DLL_Path);
Type t = asm.GetType(DLL_NameSpace.MyClass, false, true);
clsMethodInvoke mi = new clsMethodInvoke();
foreach (MemberInfo oMember in t.GetMembers(mi.GetFilter()))
{
    string parameters = GetParameters(oMember);
    string test = String.Format(testTemplate, t.Name, m.Name, parameters);
    // Feed test string to T4.
}
那么testTemplate将是:

[Test()]
public virtual void Test{0}{1}() {
    {0} test{0} = new {0}();

    {2}
}

看看,这是一个通过分析代码生成单元测试的工具

你能详细说明一下这个解决方案吗。。。我无法理解这一点。我对codedom是新手