我正在尝试实现一个collection fixture,其中灯具需要执行的工作(在其构造函数中)需要一个参数。我希望固定装置是通用/可重复使用的,并且它需要知道被测试单元的组装。
如何设置参数集的夹具,以使集合中的测试可以赋予夹具此“上下文”?
答案 0 :(得分:0)
我最终创建了一个抽象集合夹具,其中带有一个受保护的构造函数,该构造函数采用必要的参数(在我的情况下为Assembly
)。然后,我定义了具有no-arg构造函数的小型子类,该构造函数使用正确的参数调用继承的子类。
public abstract class BaseCollectionFixture<TFixture> : ICollectionFixture<TFixture>
where TFixture : class
{
protected BaseCollectionFixture(Assembly assemblyUnderTest)
{
// Do my fixture stuff with the assembly
}
}
[CollectionDefinition("Special tests")
public class ConcreteFixture : BaseCollectionFixture<ConcreteFixture>
{
public ConcreteFixture() : base(typeof(MyClassUnderTest).Assembly) {}
}
然后我在如下测试中使用它:
public MyClassTests<ConcreteFixture> { ... }