我正在为DataAccessRepository类(使用实体框架)类编写测试用例。此类在构造函数中带有两个参数。1)连接对象2)自动映射器对象
现在,我在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);
}
}`
Run Code Online (Sandbox Code Playgroud)
见https://xunit.net/docs/shared-context
一个测试类只能在一个测试集合中(这就是为什么对属性有这样的约束)。
解决方案是声明一个单一的“虚拟”测试集合,它声明这样一个集合中的测试应该通过ICollectionFixture<X>s控制访问的两个固定装置。
当这到位时,测试类构造器会根据需要配备任何夹具实例。
(您也可以IClassFixture在测试类级别使用 an来声明集合之外的内容[但此类夹具将在该测试类中每次执行测试时向上/向下旋转],而不是在测试集合级别上将被加速/down 在整个运行过程中只执行一次,并在轮到集合中的所有测试类访问集合夹具时传递给他们])
| 归档时间: |
|
| 查看次数: |
3394 次 |
| 最近记录: |