写单体测试

单体测试规范:

SourceFile文件夹:存放被测试代码

BaseFile文件夹:存放测试构建代码

InputFile文件夹:存放导入资源

UnitTest.cs: 存放单体测试代码,每个对应单体测试方法名字最好和单体测试式样书对应,这样更清晰明了


namespace UnitTestProject1

{
    [TestClass]
    public class UnitTest1
    {
        [TestMethod]  // 测试方法,每新建一个测试方法都需要有该应用
        public void TestMethod1()

        {

//构建测试环境,一般用new 方法创建测试实例,尽量少用static静态变量

Assert.AreEqual(期望值, 被测试值);   

        }
    }

}


测试动态库和私有方法的测试实例

namespace UnitTestProject1
{
    [TestClass]
    public class UnitTest1
    {
      object o = new object();
        Type t = null;


        //测试前执行
        [TestInitialize()]


        public void MyTestInitialize()
        {
            string path = @"C:\Users\fanggn\Documents\Visual Studio 2012\Projects\ForTest\ForTest\bin\Debug\ForTest.dll";


            Assembly ass = Assembly.LoadFrom(path);


            t = ass.GetType("ForTest.Class1");


            o = Activator.CreateInstance(t, true);
        }




        [TestMethod]
        public void TestMethod1()
        {
            object[] param = new object[2] { 20, 5 };


            MethodInfo minfo = o.GetType().GetMethod("Minus");


            Assert.AreEqual(15,minfo.Invoke(o,param));
        }




        [TestMethod]
        public void TestMethod2()
        {
            Assembly ass = Assembly.LoadFrom(@"C:\Users\fanggn\Documents\Visual Studio 2012\Projects\ForTest\ForTest\bin\Debug\ForTest.dll");


            t = ass.GetType("ForTest.Class2");


            object oo = Activator.CreateInstance(t, new object[] { 1, 2, 3 });


            object[] param = new object[3] { 20, 5, oo };


            MethodInfo minfo = o.GetType().GetMethod("Plus");


            Assert.AreEqual(25, minfo.Invoke(o, param));
        }


        //执行私有方法
        [TestMethod]
        public void TestMethod3()
        {
            object[] param = new object[2] { 20, 5 };


            MethodInfo minfo = t.GetMethod("QuYu", BindingFlags.NonPublic | BindingFlags.Instance);


            Assert.AreEqual(0, minfo.Invoke(o, param));
        }


 
        [TestMethod]
        public void TestMethod4()
        {
            object[] param = new object[2] { 20, 5 };


            MethodInfo minfo = t.GetMethod("QuYu1");


            Assert.AreEqual(0, minfo.Invoke(o, param));
        }


        //测试完成后执行
        [TestCleanup]
        public void MyTestClear() 
        {
            o = null;
        }
    }
}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值