我是新手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));
}