码迷,mamicode.com
首页 > 其他好文 > 详细

一段关于测试和自定义Attribute的代码

时间:2014-08-07 12:59:40      阅读:217      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   os   io   for   ar   cti   

来自《西夏普入门经典》

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Reflection;

namespace ConsoleApplication1
{

    [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true)]
    public class XXXAttribute : Attribute
    {
        public XXXAttribute(System.Type testCase)
        {
            TestCase = testCase;
        }

        public readonly System.Type TestCase;

        public void Test()
        {
            object o = Activator.CreateInstance(TestCase);
        }
    }

    public class TestAnObject
    {
        public TestAnObject()
        {
            SomeCodeOrOther scooby = new SomeCodeOrOther();
            if (scooby.Do() != 999)
                throw new Exception("Pesky Kids");
        }
    }

    [XXX(typeof(TestAnObject))]
    public class SomeCodeOrOther
    {
        public SomeCodeOrOther()
        {

        }

        public int Do()
        {
            return 999;
        }
    }

    class Program
    {
        static void Main(string[] args)
        {

            Assembly A = Assembly.GetExecutingAssembly();
            System.Type[] types = A.GetExportedTypes();

            foreach (System.Type t in types)
            {
                Console.WriteLine("Checking type {0}", t.ToString());

                object[] atts = t.GetCustomAttributes(typeof(XXXAttribute), false);

                if (atts.Length == 1)
                {
                    Console.WriteLine("  Found XXXAttribute: Running Test");
                    XXXAttribute tca = atts[0] as XXXAttribute;

                    try
                    {
                        tca.Test();
                        Console.WriteLine("PASSED");
                    }
                    catch (System.Exception ex)
                    {
                        Console.WriteLine("FAILED");
                        Console.WriteLine(ex.Message);
                    }
                }
            }

            Console.Read();
        }
    }
}

 

一段关于测试和自定义Attribute的代码,布布扣,bubuko.com

一段关于测试和自定义Attribute的代码

标签:style   blog   color   os   io   for   ar   cti   

原文地址:http://www.cnblogs.com/mumuliang/p/3896762.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!