Java JUnit测试和GoogleGuice

Java JUnit测试和GoogleGuice,java,design-patterns,junit,Java,Design Patterns,Junit,我是JUnit和设计模式的初学者,请原谅 我正在阅读这个技术网页: 我能理解实际的编码和班级组织等。唯一让我困惑的是与这个特定问题相关的以下两个问题: 它使用了一种称为“依赖注入”的设计模式,通过使用Google的Guice,然而,我发现我可以在不使用这种设计模式的情况下实现相同的功能。我想知道在这个问题上使用依赖注入不是必须的吗 由于我是JUnit新手,我的理解是他为cart、item编写了测试用例,并对它们进行了单独测试,以证明其正确性。但为什么他需要最后的“构建和部署”部分来编译和运行测

我是JUnit和设计模式的初学者,请原谅

我正在阅读这个技术网页:

我能理解实际的编码和班级组织等。唯一让我困惑的是与这个特定问题相关的以下两个问题:

  • 它使用了一种称为“依赖注入”的设计模式,通过使用Google的Guice,然而,我发现我可以在不使用这种设计模式的情况下实现相同的功能。我想知道在这个问题上使用依赖注入不是必须的吗

  • 由于我是JUnit新手,我的理解是他为cart、item编写了测试用例,并对它们进行了单独测试,以证明其正确性。但为什么他需要最后的“构建和部署”部分来编译和运行测试程序,因为我可以轻松地完成这项工作,而无需创建xml文件,只需在Eclipse中右键单击并选择“作为JUnit测试运行”

  • 请给我一些关于JUnit和设计模式的帮助,谢谢

  • Guice是一个依赖项注入框架,它是一个非常有用的工具,用于管理对象的长链及其依赖项,以及以后更改实现。对于这个问题或任何问题,它都不是绝对必要的,但在某些情况下,您可能会发现它非常有用

    • 在您发布的示例中,只有一个ItemIntf的实现者、一个CartIntf的实现者和一个TaxCalculatorIntf的实现者。因为这些都是与Guice绑定的,所以您可以稍后编写CartIntf的另一个实现(比如SessionBasedCart),并通过更改模块中的那一行来更改类使用的实现
    • 同样,如果项需要一个附加的依赖项,例如ItemCatalog,则不需要更改任何其他文件。Item可以简单地插入ItemCatalog
    • 最后,使用依赖项注入框架,您可能会发现类更容易测试。对于像ServiceTaxCalculator这样的类,如果它调用任何外部依赖项,编写通过这些依赖项的测试是非常容易的(而不是让您的类使用
      new
      操作符,然后在以后替换它们)
  • 构建和部署部分引用了一个名为Ant的工具,这是一种使用XML指定构建指令和依赖项(如JUnit)的方法。Eclipse有一组内置工具用于管理类路径和JUnit上的依赖项,这意味着您不需要自己构建其中的一个。但是,如果希望在Eclipse之外运行测试,则可能需要创建一个类似于该文件的文件


  • 你可以阅读更多关于它能为你的项目做些什么的信息,同样,你也可以阅读更多关于依赖注入为什么对某些项目来说是个好主意的信息。

    你想使用依赖注入“四处走动”的动机是什么?Spring是一个非常流行的框架,它在很大程度上利用了DI。而且,坦率地说,它鼓励对代码进行大量良好的设计,从而使代码更易于测试、维护和使用。另外,DI并不复杂。在这个话题上,你是否已经陷入了思维障碍?(我自己也不得不反对这种想法。)虽然它更难理解,其概念也更难理解,但如果你正在处理任何复杂的项目,我建议你转向Maven。Ant非常棒,但是Maven处理了太多的东西,最终为其编写了很多Ant脚手架。它让你专注于你的应用,而不是构建你的应用。