c# - 如何在 ASP.NET MVC 中对私有(private) Controller 方法进行单元测试?

标签 c# asp.net-mvc unit-testing

在 ASP.NET MVC Controller 内对私有(private)方法进行单元测试的最佳实践是什么?目前,如果我想对 Controller 内的私有(private)方法进行单元测试,我必须将其设置为公共(public),但当我这样做时,该方法会暴露在网络上。

将方法移至辅助类的最佳方式是吗?

最佳答案

您应该将该方法移至您提取接口(interface)的辅助类中。这样就可以更轻松地执行依赖项注入(inject)并切换底层实现或在需要时模拟它。
测试私有(private)方法是一种代码味道(或测试味道)。
仅在必须时才使用 InternalsVisibleTo 技巧(即,您使用的是不可测试的类,并且必须引发通过 protected 函数调用对您隐藏的事件)。

关于c# - 如何在 ASP.NET MVC 中对私有(private) Controller 方法进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6044376/

相关文章:

c# - 为什么 Request.Content.ReadAsAsync 不区分大小写?

asp.net-mvc - 如何设置文本的最小长度以便显示 knockout 自动完成控件?

c# - HTML 文本框将 int 数据字段的默认值显示为 0

c# - 对对象数组执行 linq 查询?

c# - Windows Phone 8,应用程序设置未保留

asp.net - 将NUnit添加到ASP.NET MVC测试框架的选项中

android - Mockito.doNothing 不适用于 Handler

unit-testing - 在虚拟机中自动安装设置

c# - 如何对计时器类(适配器模式)进行单元测试?

c# - 使用反射跨同一程序集的不同版本使用类对象