gpt4 book ai didi

xunit - 在 xUnit 2.x 中的我的测试类上使用多个 collectionfixture

转载 作者:行者123 更新时间:2023-12-04 19:32:06 26 4
gpt4 key购买 nike

我正在为我的 DataAccessRepository(使用 Entity Framework )类编写测试用例。此类在构造函数中采用两个参数。
1)连接对象
2) Automapper 对象

现在,我在 xunit 中使用 collectionFixture 在我的测试类中传递 DatabaseFixture 但我需要将 AutoMapper Fixture 传递给同一个测试类。我尝试添加两个集合,一个接一个,但它无效。有人可以对如何在 xunit 的测试类上使用多个 FixtureCollection 提出一些看法。

我的单元测试类如下所示,它抛出错误,因为我不能在类上使用两个 CollectionFixture 属性,

`

[Collection(Traits.DatabaseFixtureCollection)]
[Collection(Traits.AutomapperFixtureCollection)]
public class MyAssessmentRepositoryTests
{
private readonly IMyAssessmentsRepository _Repo;
public MyAssessmentRepositoryTests(DatabaseFixture dbFixture,AutomapperFixture amFixture)
{
this._Repo = new MyAssessmentRepository(dbFixture.IcmDbContext,amFixture.Mapper);

}
}`

最佳答案

https://xunit.net/docs/shared-context
一个测试类只能在一个测试集合中(这就是为什么对属性有这样的约束)。
解决方案是声明一个“虚拟”测试集合,它声明了这样一个集合中的测试应该通过 ICollectionFixture<X> 控制访问的两个夹具。 s。
当这到位时,测试类构造器会根据需要配备任何夹具实例。
(您也可以在测试类级别使用 IClassFixture 来声明集合之外的内容[但此类夹具将在该测试类中每次执行测试时向上/向下旋转],而不是在测试集合级别在整个运行过程中仅向上/向下旋转一次,并在轮到集合中的所有测试类访问集合装置时传递给他们])

关于xunit - 在 xUnit 2.x 中的我的测试类上使用多个 collectionfixture,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43082094/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com