最佳答案
我想编写一个类库,它为我创建了一个复杂的对象,但只应该尽可能少地公开。我希望它被包含到其他项目中,在那里我只有一个对这个库的调用,例如返回一个内部创建类的对象。我不想让其他人显式地创建这些对象,但是我仍然想为这个类库创建一个测试项目。
例如:
var result = Manager.Instance.Create(definition)
这应该是对类库的唯一访问权限。
基于定义参数,它使用不同的子类来创建请求的实例,并相应地设置它的属性。因此,我想通过测试来保证整个创造过程运行良好。但是由于我也不想公开 result 对象的很少的内部属性,所以我不能仅仅使用这个公共访问方法进行测试,因为我没有任何可以断言的属性。
我知道你不应该测试内部机制,这是典型的糟糕设计,我也通过 这篇文章阅读,但是有没有可能有任何方法来创建一个库加单元测试项目,也许以后限制访问这个类?用包装纸什么的吗?