我一直在与以下问题作斗争一天左右。尽管多年来一直使用 AutoFixture,但我无法解决这个问题。
我有一个抽象类:
public abstract class AbstractClass
{
public IChildClass Child {get; set;}
};
IChild 接口:
public interface IChildClass
{
string Name {get; set;}
}
接口的实现:
public class ChildClass : IChildClass
{
public string Name {get; set;}
}
然后我有一个抽象类的派生类:
public class MyClass : AbstractClass
{
public MyClass()
{
Initialize();
}
private void Initialize()
{
var nameOfChild = Child.Name;
}
}
在 MyClass 的单元测试中,我执行以下操作:
var fixture = new Fixture().Customize(new AutoMoqCustomization());
var sut = fixture.Create<MyClass>();
但是在 Child.Name 上获得 NullReferenceException。我已经尝试对 IChildClass 和 AbstractClass 使用 Register 和 Customize,但没有成功。即使是 ISpecimenBuilder 的自定义实现,在这种情况下也无济于事。
有没有人知道如何解决这个问题?