使用JUnit进行单元测试SparseArray(使用JVM)

时间:2016-05-13 11:45:50

标签: android unit-testing junit

我有一个在HashMap中使用Integer作为键的实现。它已经使用JUnit进行了单元测试。但我想将其更改为SparseArray,这是Android的更优化版本。我不确定如何使用JUnit进行单元测试。有没有人有更好的方法来做到这一点?

4 个答案:

答案 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);
    }
}

注意:如果您使用putget旁边的功能,则还需要在此处实施这些功能。

答案 3 :(得分:0)

使用roboelectric框架配置测试可能更简单。

import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;

@RunWith(RobolectricTestRunner.class)
public class XxxTest {
    ...
}