如何单元测试字符串扩展方法
本文关键字:扩展 方法 字符串 单元测试 | 更新日期: 2023-09-27 18:34:46
>我有一些代码如下,我想对其进行单元测试,这是字符串类的扩展方法:
public static string Replace(this string str, Dictionary<string, string> dict)
{
}
我的扩展方法在主项目中,所以我的单元测试项目甚至看不到它。
我该怎么做?我正在使用Nunit。
你可以像普通静态方法一样调用扩展方法,方法是将要扩展的类型的实例作为第一个参数传递(例如 StringExtensions.Replace(str, dict)
(。
如果此扩展方法位于您的"主项目"中,则应在主项目的测试套件中进行测试,而不是在引用主项目的测试套件中进行测试。
除了需要从测试程序集引用您的主程序集(从您的一条评论来看,这似乎是您特定情况下的问题(,还有两个可能的陷阱,遇到这个问题的人也应该注意:
- 包含扩展方法的类必须是非泛型、非嵌套的静态类。 (请参阅 http://msdn.microsoft.com/en-us//library/bb383977.aspx( 为了使测试程序集
- 能够访问该方法,类和方法必须是公共的,或者,如果它们是内部的,则必须将测试程序集与主程序集"交朋友"。(见 http://msdn.microsoft.com/en-us/library/0tke9fxk.aspx(