個人オブジェクトがローカル データベースに正しく保存されているかどうかを確認するためのテストを作成しています (SQLite、日付に文字列を使用)。
私のテストでは:
let testPerson = Person(firstName:"John", lastName:"Doe")
データベースに保存した後、createdAt != nil かどうかをテストします
それは大丈夫です!それで :
let testPerson2 = Person.LoadByID(testPerson.id)
これは、人物オブジェクトをデータベースから testPerson2 にロードする静的関数です。
すべてのフィールドがテストに合格しています (したがって、createdAt と updateAt の日付を除いて、testPerson と testPerson2 でまったく同じです)
これらの日付の println を実行すると、まったく同じになります。
testPerson.createdAt : Optional(2015-08-14 12:03:01 +0000)
testPerson2.createdAt :Optional(2015-08-14 12:03:01 +0000)
しかし、テスト(2つの異なる方法による):
XCTAssert(testPerson2.createdAt == testPerson.createdAt, "createdAt should be the same")
また
XCTAssertTrue(testPerson2.createdAt!.isEqualToDate(testPerson2.createdAt!), "createdAt should be the same")
不合格
2x testPerson または testPerson2 でこれらのテストを実行すると、成功します
次のコードも試しました。
if testPerson.createdAt!.compare(testPerson.createdAt!) == NSComparisonResult.OrderedDescending
{
println("date1 after date2");
} else if testPerson.createdAt!.compare(testPerson.createdAt!) == NSComparisonResult.OrderedAscending
{
println("date1 before date2");
} else
{
println("dates are equal");
}
testPerson と testPerson2 を使用すると失敗し、testPerson/testPerson と testPerson2/testPerson2 で成功します
なんで ?Println とデータベース自体の調査は問題ないようです。