请考虑以下代码段
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的TestCase,如下所示,
[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
}
因此,如果在程序集中具有类的类型,我想为每个方法生成测试用例,如上所示。我怎样才能生成这样的测试用例。?
答案 0 :(得分:0)
您是否看过使用T4?
模板: http://www.codeplex.com/t4toolbox
就如何构建代码的技术性而言,我不确定您在提及时的含义:
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}
}
答案 1 :(得分:0)
查看Pex,这是一个通过分析代码生成单元测试的工具。