我有一些大型测试套件,所以我将它们分成内部/嵌套类。这也使得 VSCode 测试资源管理器中的结果更加友好。
但是当外部类中定义了通用的夹具数据时,它就不能很好地工作:
public class UserTests
{
// common fixture data used by all inner classes
public UserTests() => _fake = new Fake();
private readonly Fake _fake;
public class AddUser {
public AddUser(UserTests o) => _outer = o;
private readonly UserTests _outer;
[Fact]
public void test_foo() {
// use _outer._fake
}
[Fact]
public void test_bar() {
// use _base._fake
}
}
public class FindUser
{
// ...similar to above
}
public class DeleteUser {
// ...similar to above
}
}
但我得到这个错误:
以下构造函数参数没有匹配的夹具数据:UserTests o
所以也许上面是一个糟糕的设置。
有什么好的设置可以让我拥有嵌套类并在外部类中创建夹具数据,以便所有内部类都可以使用它?