21|DI Container(9):怎样重构测试代码?

2022-04-26 徐昊
《徐昊 · TDD 项目实战 70 讲》
课程介绍


讲述:李辰洋

时长:大小1.47M


你好,我是徐昊。今天我们继续使用 TDD 的方式实现注入依赖容器。

回顾代码与任务列表

到目前为止,我们的代码是这样的:
ContextConfig.java:package geektime.tdd.di;import java.util.*;import static java.util.List.of;public class ContextConfig { private Map<Class<?>, ComponentProvider<?>> providers = new HashMap<>(); public <Type> void bind(Class<Type> type, Type instance) { providers.put(type, new ComponentProvider<Type>() { @Override ...

展开全文
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。

精选留言

  • aoe
    2022-05-03
    - 通过 TDD 获得的测试,可以驱动我们的开发,但不代表获得的是一个良好的 Test Case 组合 - TDD 主要是为我们开发生产代码提供驱动力 - 天然得出的结果并不能认为是很好的 Test Case - 所以需要对 Test Case 进行重构 - 消除在构造 TDD 过程中留下的不一样的印记(架构选择、设计决策等) - 使 Test Case 能真实反应代码的意图 - 按测试意图将零散的测试方法收集到一起(放入同一个 Nested 中或者单独的测试类中) - 同一个上下文中,测试粒度尽量保持一致 - 清理没有用的测试
    展开
    
    1
  • davix
    2022-05-25
    才知道TDD寫過的cases要重新組織,之前看到的TDD介紹太淺,都未提過。 請教老師,developer寫的test cases的好標準是啥?有延展閱讀嗎?
    
    
  • 枫中的刀剑
    2022-05-02
    本篇总结: 测试重构的目的:让TDD的 Test Case 更好的反映出我们代码的意图,而不仅仅是单纯展示实现功能的过程。 测试代码的坏味道: 主要体现在「不一致」。 1. 设计决策变化导致的测试冗余。 2. 同类型功能不同架构选择导致的不一致。(同一类功能测试中包含不同上下文) 3. 不同功能,相似结构的测试中表现的不一致。其中某些特有功能可能不在属于当前上下文。(这种情况稍微难发现一些)。 体会:测试的重构也很重要,结构优良的Test Case 更加清晰地呈现实现代码的真实意图。
    展开
    
    
  • Flynn
    2022-04-28
    DI这个项目会在下个项目用上不

    作者回复: 回用

    
    