【问题标题】:Where should i put classes only used for development?我应该把只用于开发的类放在哪里?
【发布时间】:2012-12-19 00:14:40
【问题描述】:

我开始使用 roboguice 的依赖注入,并创建了一个类似 DataProvider 的接口。我有一个实现,它从位于 WebServerDataProvider 类中的某个 WebServer 中检索数据。为了消除对网络服务器的等待,我添加了一个 DummyDataProvider。

我会把这样的课放在哪里?我不喜欢它在 /src/main/java/my/package/providers/ 因为它不是应用程序的真实部分,但我仍然需要它进行开发。

【问题讨论】:

  • 也许最好将它与单元测试放在一起并编写一些测试用例(例如,Android 测试项目),而不是直接在应用代码中使用它。

标签: java android maven inversion-of-control roboguice


【解决方案1】:

通常您会在单元测试中使用这样的类。 Roboguice 与 Robolectric 配合得很好,它允许你模拟 http 访问之类的东西。如果你这样做,你会把你的代码放在 src/test/java/...

【讨论】:

  • hmpf,我错过了 src/test/java 在类路径中,即使是从 IDE 启动的简单应用程序启动也是如此。在这种情况下,很明显这些类应该去那里。
【解决方案2】:

如果你想用它来摆弄应用程序而不每次都打扰服务器,你可以把它放到主项目中,并用一些常量来停用它以进行部署,例如

if (DEBUG) {
    setDataProvider(new MockDataProvider());
}

如果你记得重置你的变量,Proguard 应该足够聪明,可以删除这个未使用的类(你可能不得不摆弄那里的设置)。

【讨论】:

    猜你喜欢
    • 2020-09-30
    • 2016-08-25
    • 2013-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-11
    • 1970-01-01
    • 2010-12-24
    相关资源
    最近更新 更多