0

これは私の統合テストコードです:

// Arrange
var user = new User() { FirstName = "test", UserId = 4, LastName = "test", RegisteredAt = new DateTime(2013, 02, 02) };
var repository = new GenericRepository<User>(_context);

// Act
repository.Add(user);
_context.SaveChanges();

// Assert
Assert.IsNotNull(user.UserId);

UserIdがnull許容整数であってはならないため、UserIdを使用してIsNotNullテストを実行している人を見たことがあります。

作成してデータベースに追加したエンティティが同じであることを確認するために、何をどのようにテストしますか?

しますか:

 var dbUser = _context.Users.First(u => u.FirstName == "test") 

その後

Assert.AreEqual(dbUser.FirstName,user.FirstName)

これは、作成したすべてのプロパティに対してですか?

アップデート

私はもう少しグーグルで検索しましたが、エンティティがデータベースに挿入されたかどうかをテストするために、人々は実際にさまざまで奇妙なことをしています。

Assert.That(1, Is.EqualTo(context.Roads.Count()));

Assert.assertNotNull(repo.findUserById(user.getId()));

ICustomer retainedCustomer = repository.
                    Customers.
                    Where(q => q.CustomerName == expectedCustomerName).
                    FirstOrDefault();
                Assert.IsNotNull(retainedCustomer);

最初のアサーションは、道路と呼ばれる挿入されたエンティティをテストしていません。ロードテーブルのカウントをチェックしています... 2番目と3番目のアサーションは、ログイン時にリポジトリメソッドを使用しているため、後で失敗する可能性があるため、私の意見では間違っているようです。挿入された顧客/ユーザーを取得するためのテスト。

どう思いますか?

4

0 に答える 0