由于在我的代码库中引入了 C# 8 的不可为空引用类型,我将我的域类更改为具有接受参数以初始化其不可为空属性的值的构造函数。
在单元测试中,我不想用无意义的数据填充这些构造函数参数,所以我尝试使用 NBuilder 和 Bogus 等库为我创建实例。假的例子是var myObject = Faker.Generate<MyClass>();
。
但是,看起来 Bogus 和 NBuilder 都希望我的类具有无参数构造函数或为我的类编写一些配置代码。他们不能只是发现我的构造函数并使用生成的参数值调用它。当被问及 Bogus 创建者时,我得到的回答是他们不会故意处理这种情况,因为当有多个构造函数时可能会产生歧义。但我不介意框架是否使用某些默认行为来选择构造函数(例如,选择具有最多参数的构造函数)。
那么,是否有一个库可以在生成对象时发现和使用构造函数?