私は初めてでRobolectric
、単純なゲッター/セッターコードを単体テストしようとしていますがSparseIntArray
、テスト時に期待どおりにRobolectric
機能していないようで、単に変更されていません。(私は常に get メソッドで「0」を取得します)。
また、それ自体に静的ゲッターを追加しようSparseIntArray
としましたが、セッターを呼び出した後、配列サイズが 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));
}