繁体   English   中英

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

[英]Unit test SparseArray using JUnit (using JVM)

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

支持库中有一个 SparseArray 的等效实现,称为SparseArrayCompat ,可用于 JVM 单元测试。 此外,它具有比原生功能更多的功能,因此您最好使用它。

如果有人还在寻找,您不需要任何第三方库。 您可以简单地模拟 SparseArray。

在 app/src/test/java/android/util 中创建文件 SparseArray.java 并粘贴以下内容:

package android.util;

import java.util.HashMap;

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旁边使用函数,你也需要在这里实现它们。

Unmock 是一个非常好的项目,可以为您提供这些以及更多。 https://github.com/bjoernQ/unmock-plugin

只需添加插件即可。

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM