将最美的计算机软件奉献给社会

博客园 首页 新随笔 联系 订阅 管理
[TestFixture]
    public class TestCalculator
    {
        private int result;
        private Calculator calculator;

        [SetUp] ////初始化,NUnit将在执行每个测试前执行标记SetUp属性标记的方法,有多少个测试用例(标记为Test的方法),就会执行多少次
        public void init()
        {
            calculator = new Calculator();

            Console.WriteLine("run init ...."); // 测试每个测试用例方法执行前都会执行SetUp标记的方法

        }

        [TestFixtureSetUp] //初始整个类,最先执行,如数据库连接的建立,只执行一次
        public void InitTestClass()
        {
            Console.WriteLine("初始化整个测试类.... ");
        }


       
        [Test]
        public void TestAdd()
        {
            this.result = calculator.Add(10, 2);

            Console.WriteLine("Just test Console.out ...."); // 在NUnit底部的Console.out标签里会输出这行文字

            Assert.AreEqual(12, this.result);
        }

        [Test]
        public void TestSub()
        {
            this.result = calculator.Sub(10,2);

            Assert.AreEqual(8, this.result);
        }

        [Test]
        [Ignore] //Ignore忽略属性.你可以保持测试,但又不运行它们.如果Ignore属性附加到TestFixture,所有在fixture的测试都被 忽略
        public void TestSub2()
        {
            this.result = calculator.Sub(10, 3);

            Assert.AreEqual(7, this.result);
        }

        [Test]
        [Explicit] //与Ignore相似,但与Ignore又不同,标记为Ignore的测试用例,怎么着都不会执行,而Explicit用例可以指定让其执行或不执行
        public void TestSub3()
        {
            this.result = calculator.Sub(10, 3);

            Assert.AreEqual(7, this.result);
        }


        [Test]
        [Category("Mul")]
        public void TestMul()
        {
            this.result = calculator.Mul(10, 2);

            Assert.AreEqual(20, this.result);
        }

        [Test]
        [Category("Div")] //把这个测试用例分类为Div
        public void TestDiv()
        {
            this.result = calculator.Div(10, 2);

            Assert.AreEqual(5, this.result);
        }

        [Test]
        [ExpectedException]  //ExpectedException 在执行过程中捕获你期望的异常类型
        [Category("Div")] //把这个测试用例分类为Div
        public void TestDiv2()
        {
            this.result = calculator.Div(10, 0);

            Assert.AreEqual(5, this.result);
        }

        [TearDown] // 销毁或回收资源,如流的读取,数据库连接等。每个测试方法执行完毕后都会调用该方法,有多少个测试用例(标记为Test的方法),就会执行多少次
        public void CollectGarbage()
        {
            Console.WriteLine("回收资源 .....");
        }

        [TestFixtureTearDown] // 回收整个测试类的资源,如断开数据库的连接,只执行一次
        public void CollectTestClassGarbage()
        {
            Console.WriteLine("回收测试类的资源.....");
        }

    }

 

posted on 2010-09-25 17:30  赖顺生  阅读(208)  评论(0编辑  收藏  举报