![]() |
1
2
这看起来像你的 测试中的代码 失败了 单一责任模式 . 您可能更愿意将该方法的独立部分提取为单独的方法,甚至更好地提取为它们自己的对象。结果你现在的方法会变成 组成 方法,该方法使用一些具有非常小的逻辑且易于测试的依赖项。
关键是有一个obvoius需要验证 调度行为 独立于当前方法中填充的实际业务逻辑。 这告诉我 调度行为 是它自己的责任,应该与其他的或方法分开。
在我看来,所有其他逻辑都属于其他类,而不仅仅是同一类中的单独方法。
这是由于
同一抽象层次
我们应该应用于类和方法的原则。这种新的类确实至少可以提供
这种“紧密绑定”可能只存在于知道实际实现的头脑中。 事实上,您需要分割代码以进行测试,这表明代码不像您想象的那样有太多的限制。
关于单元测试有一个非常简单的规则,它避免了所有那些“务实的决定”的东西: 单元测试不测试 代码 ,单元测试验证 公众可观察行为 哪里 公众的 手段: 返回值 和 与依赖项的通信 . 没有“务实决定”的余地。唯一的决定是: 削减的预期行为是什么 ? |
![]() |
2
0
为什么你不使用
|
![]() |
3
0
因为您知道您的测试加载程序/配置不完整,所以您希望该方法在某个时候失败。在你的测试中考虑一下:
编辑(以下注释)
仅捕获预期的npe会排除其他异常。是否应该在
也许这不是很复杂,但很简单( 吻 )去理解-甚至以后被别人理解。 参见 Junit assert something after awaiting and handling an exception |