我想写一个类库,它可以为我创建一个复杂的对象,但是应该尽可能少地暴露给外部。我希望将其包含在其他项目中,然后只需调用这个类库一次,例如返回一个内部创建的对象。我不想让其他人显式地创建这些对象,但是我仍然想为这个类库创建一个测试项目。
例如:
例如:
var result = Manager.Instance.Create(definition)
这应该是访问类库的唯一途径。
根据定义参数,它使用不同的子类来创建所请求的实例,并相应地设置其属性。因此,我希望通过测试确保整个创建过程能够正常工作。但由于我也不想暴露结果对象的非常少的内部属性,因此我不能仅使用这个公共访问方法进行测试,因为我没有任何属性可以进行断言。
我知道你不应该测试内部机制,这通常是不好的设计,我也阅读了this article,但是难道没有任何方法可以创建一个包含单元测试项目的库,然后在之后限制对这个类的访问吗?用一个包装器或其他方式?