【问题标题】:Can I make code run before the constructor using annotations我可以使用注释在构造函数之前运行代码吗
【发布时间】:2015-02-01 11:47:22
【问题描述】:

我正在使用 Guice 在我的应用程序中创建和注入实例。

出于测试的目的,我创建了一个类,该类负责创建特定测试类所需的所有静态实例并注入它们。我们称这个类为 GuiceGraphBuilder。

我想在调用我的模拟/测试类构造函数之前创建和启动 GuiceGraphBuilder,因为我的一些模拟类需要在构造时进行注入。

目前我正在使用一个静态构造函数来启动 GuiceGraphBuilder 并填充一堆静态字段。

有没有办法使用某种注解让代码在构造函数之前运行? 我见过一个使用 Guice 的answer,但这对我来说当然不好,因为我想在生成的代码中创建 Guice 注入器。

【问题讨论】:

  • 我们的测试代码不能在创建假货之前创建GuiceGraphBuilder 吗?你能提供一些代码吗?
  • 可以,但是我想用注解来让代码更干净。
  • 我个人发现直截了当的代码测试代码比魔术注释更容易阅读和维护

标签: java annotations guice


【解决方案1】:

我想您使用junit进行测试?然后你就有了生命周期钩子

  • @BeforeClass - 在第一次测试之前运行一次(用于静态设置)
  • @Before - 在每个测试方法之前运行
  • @After - 在每个测试方法之后运行
  • @AfterClass - 在所有测试完成后运行一次

我想,从 guice 中任意选择,您将能够通过匹配 init 并清理到正确的阶段来解决您的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多