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是新手