如何单元测试字符串扩展方法

本文关键字:扩展 方法 字符串 单元测试 | 更新日期: 2023-09-27 18:34:46

>我有一些代码如下,我想对其进行单元测试,这是字符串类的扩展方法:

public static string Replace(this string str, Dictionary<string, string> dict)
{            
}

我的扩展方法在主项目中,所以我的单元测试项目甚至看不到它。

我该怎么做?我正在使用Nunit。

如何单元测试字符串扩展方法

你可以像普通静态方法一样调用扩展方法,方法是将要扩展的类型的实例作为第一个参数传递(例如 StringExtensions.Replace(str, dict) (。

如果此扩展方法位于您的"主项目"中,则应在主项目的测试套件中进行测试,而不是在引用主项目的测试套件中进行测试。

除了需要从测试程序集引用您的主程序集(从您的一条评论来看,这似乎是您特定情况下的问题(,还有两个可能的陷阱,遇到这个问题的人也应该注意:

  1. 包含扩展方法的类必须是非泛型、非嵌套的静态类。 (请参阅 http://msdn.microsoft.com/en-us//library/bb383977.aspx(
  2. 为了使测试程序集
  3. 能够访问该方法,类和方法必须是公共的,或者,如果它们是内部的,则必须将测试程序集与主程序集"交朋友"。(见 http://msdn.microsoft.com/en-us/library/0tke9fxk.aspx(