Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在dotnetcore中将依赖项传递给测试类? [TestClass] 公共类家庭控制器测试 { 公共家庭控制器测试(IStringLocalizer) { } }_C#_Asp.net_Unit Testing_Asp.net Core - Fatal编程技术网

C# 如何在dotnetcore中将依赖项传递给测试类? [TestClass] 公共类家庭控制器测试 { 公共家庭控制器测试(IStringLocalizer) { } }

C# 如何在dotnetcore中将依赖项传递给测试类? [TestClass] 公共类家庭控制器测试 { 公共家庭控制器测试(IStringLocalizer) { } },c#,asp.net,unit-testing,asp.net-core,C#,Asp.net,Unit Testing,Asp.net Core,在上面测试HomeController的类中,我想获得StringLocalizer thorugh DI,它用于创建HomeController的实例。如何通过DI获得它?通常在测试方法中不使用DI。你需要它吗?为什么?还请指定您正在使用的单元测试框架。您应该避免单元测试中的DI,因为这意味着您现在同时测试单元和DI容器。@ps2goat:和StrongLocalizer;)Vikram,对于单元测试,您必须使用mock而不是具体的类。否则它就变成了一个集成测试,这是完全不同的,所以最好不要也

在上面测试HomeController的类中,我想获得StringLocalizer thorugh DI,它用于创建HomeController的实例。如何通过DI获得它?

通常在测试方法中不使用DI。你需要它吗?为什么?还请指定您正在使用的单元测试框架。您应该避免单元测试中的DI,因为这意味着您现在同时测试单元和DI容器。@ps2goat:和
StrongLocalizer
;)Vikram,对于单元测试,您必须使用mock而不是具体的类。否则它就变成了一个集成测试,这是完全不同的,所以最好不要也测试控制器,如果你这样做了,就把它减少到最低限度,或者使用TestServer来做。为了实现这一点,您必须在控制器和操作中使用尽可能少的代码,没有业务逻辑您所要求的是什么。
[TestClass]
public class HomeControllerTests
{
    public HomeControllerTests(IStringLocalizer<HomeController> localizer)
    {

    }
}