Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.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# 使用Xunit的Dot Net核心单元测试->;如何为类编写初始化函数_C#_Unit Testing_.net Core_Xunit - Fatal编程技术网

C# 使用Xunit的Dot Net核心单元测试->;如何为类编写初始化函数

C# 使用Xunit的Dot Net核心单元测试->;如何为类编写初始化函数,c#,unit-testing,.net-core,xunit,C#,Unit Testing,.net Core,Xunit,我已经开始在dotnetcore2.0中进行单元测试。 我已经为我的Web API编写了一个从类到单元测试控制器的类 请在下面找到我单元测试类的代码 public class ArticlesControllerTests { private ArticlesController _articlesController; private Mock<IArticleRepository> _articleRepositoryMock = new Mock<IAr

我已经开始在dotnetcore2.0中进行单元测试。 我已经为我的Web API编写了一个从类到单元测试控制器的类

请在下面找到我单元测试类的代码

public class ArticlesControllerTests
{
    private ArticlesController _articlesController;

    private Mock<IArticleRepository> _articleRepositoryMock = new Mock<IArticleRepository>();

    public ArticlesControllerTests()
    {
        _articlesController = new ArticlesController(_articleRepositoryMock.Object);
    }

    [ClassInitialize]
    public static void Init()
    {
        AutoMapperInit.Initialize();
    }
}
公共类ArticlesControllerTests
{
私人物品控制人(物品控制人);;
私有模拟_articleRepositoryMock=新模拟();
公共物品控件测试()
{
_articlesController=新的articlesController(\u articleRepositoryMock.Object);
}
[分类初始化]
公共静态void Init()
{
AutoMapperInit.Initialize();
}
}
我想写一个Init函数,它将调用一次并初始化AutoMapper配置。但是
[ClassInitialize]
不存在。我在网上搜索过,但找不到该属性

我应该怎么做才能使它适用于Dot Net Core 2.0。

在测试类上使用静态构造函数应该提供相同的行为

public class ArticlesControllerTests {
    private ArticlesController _articlesController;

    private Mock<IArticleRepository> _articleRepositoryMock = new Mock<IArticleRepository>();

    public ArticlesControllerTests() {
        _articlesController = new ArticlesController(_articleRepositoryMock.Object);
    }

    static ArticlesControllerTests() { //<-- static constructor
        AutoMapperInit.Initialize();
    }

    //...
}
公共类ArticlesControllerTests{
私人物品控制人(物品控制人);;
私有模拟_articleRepositoryMock=新模拟();
公共物品控件测试(){
_articlesController=新的articlesController(\u articleRepositoryMock.Object);
}

静态ArticlesControllerTests(){//在这个文档中,我找不到任何测试类上的
Init
functionstatic构造函数可以像well@Saadi静态构造函数工作了吗?这个问题还不够清楚。标题说正在使用xUnit。标签上说它是nunit。显然帮助你的帖子是关于mstest的。请澄清你的想法正在使用。这三个框架处理初始化的方式不同,并且AFAIK ClassInitialize只存在于mstest中。我们中的许多人在单个框架中具有特定的专业知识,不必回答WRT其他框架…或者如果我们无法确定您要使用的框架!