我joda-time-android
在课堂上使用了库的类Presenter
,它不能有任何 Android 依赖项。所以我无法正确测试它。我知道我可以用Robolectric
这个,但我想远离这个工具和我的Presenter
清洁。我应该放弃 JodaTime 吗?还有其他解决方案吗?
问问题
1456 次
2 回答
16
因为Unit-tests
我们可以使用JodaTime
库的默认 java 实现,因为它具有与joda-time-android
.
// for android
compile 'net.danlew:android.joda:2.9.3'
// joda-time for tests
testCompile 'joda-time:joda-time:2.9.3'
奇迹般有效。
对于其他库的其他情况,请参阅@npace的答案。
于 2016-05-12T16:33:23.557 回答
2
好吧,joda-time-android
确实依赖于 Android 运行时才能工作。使用Robolectric
它似乎是一个不错的用例,因为您不会与Android SDK 中的Fragment
,Activity
和其他 UI 类进行交互。
由于设置Robolectric
有点痛苦,因此还有另一种选择 - 您可以使用适配器模式为常规 Java Joda 时间库和 Android 版本创建一个通用接口。
如果这是可能且实用的(取决于您要使用多少 Joda 时间 API),您可以在运行应用程序时支持您,并在运行单元测试时支持Adapter
它。例如,我想你可以让它使用你的方法中的Android具体实现和你的单元测试中的Java具体实现。joda-time-android
joda-time
Application
onCreate()
@Before
于 2016-05-12T15:23:40.793 回答