当前位置: 首页 > 知识库问答 >
问题:

如果我正在运行的类是JUnit,如何初始化guice?

潘兴朝
2023-03-14

我在写一个API模块。

在开发过程中,我使用junit来运行代码

但是我应该在哪里初始化它呢?

共有1个答案

东方乐
2023-03-14

这取决于你想做什么。我发现,使用BoundFieldModule和Guice 4.0中的@bind注释,直接使用Guice通常是最简单的。例如:

@RunWith(JUnit4.class)
public final class TestMyInjectableCode {
  @Bind @Mock @SomeAnnotation Foo myFoo;
  @Bind @SomeAnnotation String myAnnotationString = "some constant";

  @Bind(lazy = true) @ShouldDoSomeThing Boolean shouldDoSomeThing = false;

  @Inject Provider<SystemUnderTest> systemUnderTest;

  @Before public void setUpInjector() {
    MockitoAnnotations.initMocks(this);
    Guice.createInjector(BoundFieldModule.of(this)).injectMembers(this);
  }

  @Test public void test_ShouldDoSomeThing() {
    shouldDoSomeThing = true;
    SystemUnderTest sut = systemUnderTest.get();
    assertEquals("expected value", sut.getValue());
  }
}
 类似资料:
  • 我想在部署初始化成功后运行特定的命令。 这是我的yaml文件: 不过,我希望在成功初始化部署并运行POD之后(而不是之前)运行db迁移命令。 我可以为每个pod手动执行(使用kubectl exec),但这不是很好的扩展性。

  • 问题内容: 将log4j添加到我的应用程序后,每次执行我的应用程序时,都会得到以下输出: 看来这意味着缺少配置文件。此配置文件应位于何处,什么是良好的入门内容? 我使用纯Java开发桌面应用程序。因此没有网络服务器等… 问题答案: 默认情况下,在上查找名为或的文件。 您可以按照此处所述通过设置系统属性来控制它用来初始化自身的文件(查找“默认初始化过程”部分)。 例如: 将导致在类路径上查找名为的文

  • 问题内容: 在Python中,请考虑以下代码: 如何在子类中初始化?我正在关注Python教程,但没有涵盖。当我在Google上搜索时,发现了不止一种方法。处理此问题的标准方法是什么? 问题答案: Python(直到第3版)支持“旧式”和新式类。新样式类派生自您使用的类,并通过调用它们的基类,例如 因为python了解旧样式和新样式的类,所以有不同的方法可以调用基本方法,这就是为什么您找到了多种方

  • 问题内容: 我正在将我的Caffe网络移植到TensorFlow上,但似乎没有进行初始化的工作。我正在使用,但这似乎使训练变得更加困难。 问题答案: 在 Tensorflow 2.0 和 更高版本中 ,和均已弃用。为了进行Xavier初始化,您现在必须切换到: Glorot制服和Xavier制服是同一初始化类型的两个不同名称。如果您想了解有关如何在带有或不带有Keras的TF2.0中使用初始化的更

  • 我有一个非常基本的问题。我需要如何为ArrayList键入parrameters才能在BlueJ中使用代码?我有一个方法如下。

  • 对于“何时”有很多很好的答案,比如在这个线程中——静态类初始化何时发生?现在我的问题是“如何”。这是斯蒂芬C.的回答中的一段话 类静态初始化通常在第一次发生以下事件之前立即发生: 将创建该类的一个实例, 调用该类的静态方法, 已分配类的静态字段, 使用非恒定静态场,或 对于顶级类,执行词汇嵌套在类中的assert语句 那么它是如何在内部完成的呢?每个可能触发初始化的指令都用包装?任何工作的细节:-