2016-10-25 4 views
1

パラメータセットでnullで新しいパラメータ化されたAndroidテストを実行しようとしています。残念ながら、値はnullではなく、文字列"null"として表示されています。どうしたらこのことが起こらないようにすることができますか?Android JUnitのパラメータは、nullの代わりに文字列 "null"です

@RunWith(Parameterized.class) 
public class PedigreeProviderTest { 

    @Parameter() 
    @SuppressWarnings("WeakerAccess") 
    public String mVin; 
    @Parameter(value = 1) 
    @SuppressWarnings("WeakerAccess") 
    public String mDap; 
    @Parameter(value = 2) 
    @SuppressWarnings("WeakerAccess") 
    public int mAddress; 
    @Parameter(value = 3) 
    @SuppressWarnings("WeakerAccess") 
    public int mBusId; 

    @Parameters 
    public static Collection<Object[]> parameters() { 
     return Arrays.asList(new Object[][]{ 
       {null, null, 0x7F, 0}, 
       {"1FUYFXYB3XPA96364", null, 0x7F, 0}, 
       {"1HD4CAM30YK190948", "00D06948C67C", 0x7F, 0}, 
       {null, "00D06948C67C", 0x7F, 0}, 
     }); 
    } 

    @Test 
    public void testSomething(){ 
     "null".equals(mVin); //is true for parameter 0 and 3 
     mVin == null; //is never the case 
    } 

    ... 
} 

答えて

0

私は、コンストラクタのパラメータを初期化し、それらが「ヌル」

@RunWith(Parameterized.class) 
public class PedigreeProviderTest { 
    private String mVin; 
    private String mDap; 
    private int mAddress; 
    private int mBusId; 

    @Parameters 
    public static Iterable<Object[]> parameters() { 
     return Arrays.asList(new Object[][]{ 
       {"1FUYFXYB3XPA96364", null, 0x7F, 0}, 
       {"1HD4CAM30YK190948", "00D06948C67C", 0x7F, 0}, 
       {null, "00D06948C67C", 0x7F, 0}, 
       {null, null, 0x7F, 0}, 
     }); 
    } 

    public PedigreeProviderTest(String vin, String dap, int address, int busId) { 
     mVin = "null".equals(vin) ? null : vin; 
     mDap = "null".equals(dap) ? null : dap; 
     mAddress = address; 
     mBusId = busId; 
    } 

    /*tests...*/ 

} 
あるとき nullにフィールドを設定するために、条件付きチェックを使用して終了
関連する問題