我有一个在HashMap中使用Integer作为键的实现。它已经使用JUnit进行了单元测试。但我想将其更改为SparseArray,这是Android的更优化版本。我不确定如何使用JUnit进行单元测试。有没有人有更好的方法来做到这一点?
答案 0 :(得分:28)
支持库中有一个名为SparseArrayCompat的SparseArray的等效实现,可以在JVM单元测试中使用。它还具有比原生功能更多的功能,因此您最好使用它。
答案 1 :(得分:6)
Unmock是一个非常好的项目,可以为您提供更多。 https://github.com/bjoernQ/unmock-plugin
只需添加插件即可。
答案 2 :(得分:3)
如果有人仍在寻找,您不需要任何第三方库。你可以简单地模拟SparseArray。
在app / src / test / java / android / util中创建一个文件SparseArray.java并粘贴以下内容:
public class SparseArray<E> {
private HashMap<Integer, E> mHashMap;
public SparseArray() {
mHashMap = new HashMap<>();
}
public void put(int key, E value) {
mHashMap.put(key, value);
}
public E get(int key) {
return mHashMap.get(key);
}
}
注意:如果您使用put
和get
旁边的功能,则还需要在此处实施这些功能。
答案 3 :(得分:0)
使用roboelectric框架配置测试可能更简单。
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
@RunWith(RobolectricTestRunner.class)
public class XxxTest {
...
}