首页 > 解决方案 > JUnit 测试询问上下文?

问题描述

我正在为这个布尔方法创建一个单元测试。它的目的是在数据库中插入新行时返回一个布尔值。(布尔值用于错误处理)。这个方法是我的“DBHelper”类的一部分。

    public Boolean insertBorrowerDetails(String FirstName, String LastName, String NickName, String PhoneNumber)
{
    SQLiteDatabase db = this.getWritableDatabase();
    ContentValues BorrowerContentValues = new ContentValues();
    BorrowerContentValues.put("FirstName",FirstName);
    BorrowerContentValues.put("LastName",LastName);
    BorrowerContentValues.put("NickName",NickName);
    BorrowerContentValues.put("PhoneNumber",PhoneNumber);
    long InsertBorrowerResult = db.insert("Borrowers",null, BorrowerContentValues);
    if (InsertBorrowerResult==-1){
        return false;
    }else{
        return true;
    }
}

这是我尝试为该方法创建的单元测试。

       @Test
        public void insertBorrowerDetailsTest() {
        String FirstName = "John";
        String LastName = "Doe";
        String NickName = "";
        String PhoneNumber = "0467823618";
        DBHelper db = new DBHelper(); Here its asking me for context?? Not sure why..
        Boolean result = db.insertBorrowerDetails(FirstName,LastName,NickName,PhoneNumber);
        assertEquals(result,false);
        }

这是我的第一个单元测试,所以我不太确定为什么它要求我提供上下文。我还尝试在不初始化 DBHelper 类的情况下调用 insertBorrowerDetails 方法,但该方法是非静态的,因此似乎我不能只继承该方法。知道我如何才能对这种方法进行实际的单元测试吗?

标签: javaandroidandroid-studiojunit

解决方案


推荐阅读