1

我是新手Robolectric,我正在尝试对一个简单的 getter/setter 代码进行单元测试,但SparseIntArray在测试时似乎没有按预期工作,Robolectric而且它根本没有改变。(我总是用 get 方法得到'0')。

我还尝试为自身添加一个静态getter,SparseIntArray发现调用setter后,数组大小为0。

我在这里想念什么?

这是我要测试的代码:

public class MyClass {
    private static SparseIntArray sRequestStatus;

public static int getStatus(int request) {
    return sRequestStatus.get(request);
}

public static void setStatus(int request, int status) {
    if (sRequestStatus.get(request) != 0) {
        sRequestStatus.delete(request);
        sRequestStatus.put(request, status);
    } else {
        sRequestStatus.put(request, status);
    }
}

    static {
    sRequestStatus = new SparseIntArray();
    }
}

这是测试:

@RunWith(RobolectricTestRunner.class)
public class MyClassTests {

@Test
public void testGetSetStatus() throws Exception {
    // get status should return 0 for non-exisiting request
    assertEquals(0, MyClass.getStatus(1));

    // set status should add a request mapping
    MyClass.setStatus(1, 1);
    assertEquals(1, MyClass.getStatus(1));

    // set status should change the request status if mapping exists
    MyClass.setStatus(1, 2);
    assertEquals(2, MyClass.getStatus(1));
}
4

1 回答 1

1

原来在我使用SparseIntArray的版本中没有影子。Robolectric

于 2012-10-09T10:13:19.760 回答