0

xml を addRowToTheDatabase 関数に渡しています。この関数では、単純に xml ファイルを解析し、要素を xml ファイルに取得します。今、私はこのアプリケーションをテストしています。行がデータベースに追加されたかどうかをユニットテストケースからテストするにはどうすればよいですか?

4

1 に答える 1

1

// クエリの 1 つをすばやく操作しました。SQLite で既に DB に接続していると想定しているため、これの多くは必要ありません。しかし、これはクエリの基本構造です..DB がアプリケーション自体に存在する限り。

-(void) basicQuery
{
    @try {  
        NSFileManager *fileManager = [NSFileManager defaultManager]; 
        NSString *theDBPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"databasename.sqlite"]; 
        BOOL success = [fileManager fileExistsAtPath:theDBPath]; 
        if (!success) {
            NSLog(@"Failed to find database file '%@'.", theDBPath);
        } 
        if (!(sqlite3_open([theDBPath UTF8String], &database) == SQLITE_OK)) { 
            NSLog(@"An error opening database, normally handle error here.");  
        }  

        const char *sql = "SELECT * FROM TABLE"; // your basic query
        sqlite3_stmt *statement; 
        if (sqlite3_prepare_v2(database, sql, -1, &statement, NULL) != SQLITE_OK){ 
            NSLog(@"Error, failed to prepare statement, normally handle error here."); 
        } 
        while (sqlite3_step(statement) == SQLITE_ROW) { 
          NSString *value = [NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 0)]; 
           NSLog(@"value = %@",value);

        } 
        if(sqlite3_finalize(statement) != SQLITE_OK){ 
            NSLog(@"Failed to finalize data statement, normally error handling here."); 
        } 
        if (sqlite3_close(database) != SQLITE_OK) { 
            NSLog(@"Failed to close database, normally error handling here."); 
        } 
    } 
    @catch (NSException *e) { 
        NSLog(@"An exception occurred: %@", [e reason]); 
        return nil; 
    } 
}
于 2012-07-06T12:06:57.143 に答える