0

修正済み: データベースが空でした。既存の(いっぱいになった)データベースを上書きするコードがありました。ここには何もありません:)

アプリでテストを実行する 3 つの「テスト」クラスがあります。アプリの機能の一部は HTML の解析であるため、テスト対象のマークアップ コードのデータベースがあります。これら 3 つのテスト クラスとマークアップ コード データベースを、リリースしたコードに含めたくありません。これを実現するために Xcode を設定するにはどうすればよいですか?

単体テストも実行しているため、テスト クラスにフックするテスト メソッドを追加しましたが、次の if ステートメントは true と評価されません。

if (sqlite3_prepare_v2(database, sql, -1, &statement, NULL) == SQLITE_OK)

最初に頭に浮かぶのは、libsqlite3.0.dylib と .sqlite がコピーされたかどうかです (コピーされました)。さらに、この行の前にある以下のステートメントはtrue と評価されます

if (sqlite3_open([path UTF8String], &database) == SQLITE_OK

だから、sqlite dbとdylibが整っていると思います(?)。

コードが既知の作業コピーから正確にコピーされたことを念頭に置いて、次の作業を行いました。

  • 問題の行が nil ではない前に、データベース変数と sql 変数が nil ではないことを確認しました
  • dylib、.sqlite、およびテスト クラスのターゲットをすべてのターゲットに割り当てました (主に、ターゲットが一般的にどのように機能するかを学習しているため)
  • ブレークポイントを使用して、Xcode で作成したテスト ケース クラスのテスト メソッドが呼び出されていることを確認しました

不足している設定なのか、SenTestingKit フレームワークでサポートされていないのか疑問に思っています。この方法でテストクラスをフックすることは可能ですか?

4

0 に答える 0