我正在试图弄清楚它是否是一个API设计缺陷,它实际上是正常的,或者SRP是否被侵犯。
我有2种公开方法initialize()
和onListRefresh()
。它们都调用相同的私有方法updateList()
。两者之间的唯一区别是initialize()
也检查了一个null参数以引发异常。
问题在于,为了测试两种公共方法,我几乎必须复制并粘贴相同的模拟,存根,期望和断言,这些都是针对私有方法发生的事情,并且感觉不对。那是哪一个:
initialize()
同时检查参数并调用updateList()
答案 0 :(得分:1)
我选择2,坚持并行测试。但是这里可能会从测试代码中调用一些东西:提取辅助方法。
这可能发生在测试的Arrange,Act,Assert阶段的任何地方。您可以在所有3个阶段中提取助手。诀窍是好名字,所以测试简单明了地表达了它们的用途。