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