我有一个非常大的库,但只暴露了一个非常小的API,使其易于使用和学习新用户.我想以这种方式保留我的图书馆,但我也想确保我有尽可能多的单元测试覆盖率,我希望能够直接对我的所有课程进行单元测试,但据我所知,我可以只有单元测试库的公共API.
当然,我可以编写单元测试来完全测试公共方法,这些公共方法将有效地间接测试所有底层私有类,但如果测试失败,则可能意味着需要在私有代码中进行大量挖掘以找出问题所在错误的,而不是对每个私人班级进行单元测试,所以当出现问题时,它会立即显现出错的地方和位置.
是否有设计模式来帮助解决这种情况或为私人飞镖类和方法编写单元测试的方法?
我正在为 Flutter Apps 开发一个包
有些方法和类只对包本身有用,对导入我的包的程序员没有用,是否可以隐藏这些方法和类以供进一步实现?
例子:
数据服务.dart
export class DataService{
//Must be visible only for my library
static notifyDataChanged(InternalEvent internalEvent){ ... }
//Must be visible for anyone
static addCallbackOnDataChange(onDataChangeCallback) { ... }
}
Run Code Online (Sandbox Code Playgroud)
内部事件.dart
//Must be visible only for my library as well
export class InternalEvent {
...
}
Run Code Online (Sandbox Code Playgroud)