我有一组单元测试,它使用一个夹具类来存储共享上下文。
public class MSAccessFixture : IDisposable {
// ...
}
public class MSAccess : IClassFixture<MSAccessFixture> {
public MSAccess(MSAccessFixture fixture) {
// ...
}夹具类的一个字段可以有两个不同的值。
如何在给定的测试类中针对夹具的任何一个实例运行相同的测试集?
发布于 2019-03-01 07:47:48
AFAICT,此时不可能控制给定的夹具实例的值应该来自于this类之外的值。因此,唯一的方法是实现类型层次结构:
BaseFixture
DerivedFixture1
DerivedFixture2其中每个派生夹具都有不同的值。
(这也意味着测试类的类型层次结构,如这里所指出的)。
就像所以
public class MSAccessFixtureBase {
public MSAccessFixtureBase(bool sharedConnection) {
// ...
}
}
public class MSAccessFixture : MSAccessFixtureBase {
public MSAccessFixture() : base(false) { }
}
public class MSAccessFixture1Connection : MSAccessFixtureBase {
public MSAccessFixture1Connection() : base(true) { }
}
public abstract class MSAccessBase {
private MSAccessFixtureBase fixture;
public MSAccessBase(MSAccessFixtureBase fixture) {
this.fixture = fixture;
// ...
}
}
public class MSAccess : MSAccessBase, IClassFixture<MSAccessFixture> {
public MSAccess(MSAccessFixture fixture) : base(fixture) { }
}
public class MSAccess1Connection : MSAccessBase, IClassFixture<MSAccessFixture1Connection> {
public MSAccess1Connection(MSAccessFixture1Connection fixture) : base(fixture) { }
}https://stackoverflow.com/questions/54921590
复制相似问题