0

Connection.db.Single<Test>("select * from Test WHERE ID= " + id)次のようにテスト に使用しています。

Assert.IsNull(Connection.db.Single<Test>("select * from Test WHERE ID= " + id));

渡している id の値の行がないため、結果セットは null でなければならないことがわかっています。ただし、次のようにエラーが発生します。

シーケンスには要素が含まれておらず、例外の詳細は次のとおりです: System.InvalidOperationException はユーザー コードによって処理されませんでした メッセージ = シーケンスには要素が含まれていません ソース = System.Core StackTrace: at System.Linq.Enumerable.Single[TSource](IEnumerable`1 source) at PetaPoco.Database.Single[T](String sql, Object[] args) in C:\Dev\Models\PetaPoco.cs:line 1120

  1. Single を使用して null をテストすることはできませんか?
  2. Asset.IsNUll をテストするためのより良い方法はありますか?
4

2 に答える 2

0

次のように、Any() または FirstOrDefault を使用します。

if ( context.Product.Any( x => x.ProductId == 1 ) ) ... 
于 2012-03-06T11:05:29.247 に答える
0

使用する:

Assert.IsNull(Connection.db.SingleOrDefault<Test>("select * from Test WHERE ID= " + id));
于 2012-03-07T05:56:13.893 に答える