小编Per*_*erk的帖子

.Net核心库:如何使用xUnit测试私有方法

当使用.Net Core框架编译时,最新的xunit框架不允许库代码中的测试运行器(这适用于普通的Visual Studio代码).解决方案是创建一个单独的测试项目来运行您的测试用例.

我遇到的问题是我想测试的一些方法是'私有'方法.如何在不使其范围"公开"的情况下从我的测试项目中调用这些方法?

更一般的问题是:当使用私有方法的公共方法无法使用时,如何测试私有方法?(因为它具有交互性 - 也就是说,它有一个ReadLine();包含在其中)


可能的解决方案:
1)将私有方法公开,并以某种方式重命名它们,以表明它们不应在外部使用.(使用'private'或'internal'作为名称的一部分)
2)创建一个'public static bool Testflag'字段,可以设置为true以绕过公共方法的交互部分,以确保测试其所有部分.

(虽然我已经使用了上述两种方法 - 我真的不喜欢它,因为私有方法应该保持私有,而标志会增加许多额外的复杂性.有人遇到过同样的问题吗?你是怎么解决的?

c# xunit .net-core

4
推荐指数
2
解决办法
3740
查看次数

标签 统计

.net-core ×1

c# ×1

xunit ×1