惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

宝玉的分享
宝玉的分享
Engineering at Meta
Engineering at Meta
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - 聂微东
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Last Week in AI
Last Week in AI
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 三生石上(FineUI控件)
T
Tailwind CSS Blog
Apple Machine Learning Research
Apple Machine Learning Research
Hugging Face - Blog
Hugging Face - Blog
爱范儿
爱范儿
博客园 - 司徒正美
人人都是产品经理
人人都是产品经理
Jina AI
Jina AI
博客园 - 叶小钗
雷峰网
雷峰网
罗磊的独立博客
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - Franky
WordPress大学
WordPress大学
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
阮一峰的网络日志
阮一峰的网络日志
量子位

博客园 - Ants

我用 AI 辅助开发了一系列小工具(2):图片压缩工具 我用 AI 辅助开发了一系列小工具(1):文件提取工具 Spring Cloud中,Eureka常见问题总结 部署Spring Boot应用 C# FTP 命令无法获取ServerU目录列表问题 redis参数优化 memcached在windows下多实例并存 开源一个windows下的定时任务框架,简单粗暴好用。 WebRequest 访问 https Python定时任务框架APScheduler 3.0.3 Cron示例 Eclipse安装python注意事项 C# 计算文件MD5 .net 操作sftp服务器 在ASP.NET MVC中使用Unity进行依赖注入的三种方式 ASP.NET Web API 安全筛选器 Token Based Authentication in Web API 2 IIS中查看W3P.exe进程对应的应用程序池的方法 WCF自定义Header sqlserver 用 RowNumber 分组
C# 为私有方法添加单元测试(反射)
Ants · 2015-04-27 · via 博客园 - Ants
   1:  using System;
   2:  using System.Collections.Generic;
   3:  using System.Linq;
   4:  using System.Text;
   5:  using System.Reflection;
   6:   
   7:  namespace TestProject
   8:  {
   9:      public class TestHelper
  10:      {
  11:          /// <summary>
  12:          /// 调用静态方法
  13:          /// </summary>
  14:          /// <param name="t">类全名</param>
  15:          /// <paramname="strMethod">方法名</param>
  16:          /// <paramname="aobjParams">参数表</param>
  17:          /// <returns>函数返回值</returns>
  18:          public static object RunStaticMethod(System.Type t, string strMethod, object[] aobjParams)
  19:          {
  20:              BindingFlags eFlags = BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic;
  21:              return RunMethod(t, strMethod, null, aobjParams, eFlags);
  22:          }
  23:   
  24:   
  25:          /// <summary>
  26:          /// 调用实例方法
  27:          /// </summary>
  28:          /// <param name="t">类全名</param>
  29:          /// <paramname="strMethod">方法名</param>
  30:          /// <paramname="objInstance">类的实例</param>
  31:          ///<paramname="aobjParams">参数表</param>
  32:          ///<returns>函数返回值</returns>
  33:          public static object RunInstanceMethod(System.Type t, string strMethod, object objInstance, object[] aobjParams)
  34:          {
  35:              BindingFlags eFlags = BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic;
  36:              return RunMethod(t, strMethod, objInstance, aobjParams, eFlags);
  37:          }
  38:   
  39:          private static object RunMethod(System.Type t, string strMethod, object objInstance, object[] aobjParams, BindingFlags eFlags)
  40:          {
  41:              MethodInfo m;
  42:              try
  43:              {
  44:                  m = t.GetMethod(strMethod, eFlags);
  45:                  if (m == null)
  46:                  {
  47:                      throw new ArgumentException("There is no method '" + strMethod + "' for type'" + t.ToString() + "'.");
  48:                  }
  49:                  object objRet = m.Invoke(objInstance, aobjParams);
  50:                  return objRet;
  51:              }
  52:              catch
  53:              {
  54:                  throw;
  55:              }
  56:          }
  57:      }
  58:  }