alay kullanan bir birim test Aşağıdaki yöntemi vardır:karşılaştırılması byte [] içinde LINQ-SQL-ve
User IDataContext.AuthenticateUser(string userName, string password)
{
byte[] hash = PasswordHasher.HashPassword(userName, password);
var query =
from e in mContext.GetTable<User>()
where e.Email == userName && e.Password == hash
select e;
return query.FirstOrDefault();
}
mContext
bir System.Data.Linq.DataContext
her şey iyi çalışıyor olduğunu. Ancak, birleştirme testim sırasında mContext
bellek içi bir alay olduğunda, e.Password
ve hash
arasındaki karşılaştırma her zaman false
değerini döndürür.
Bu karşılaştırmayı e.Password.SequenceEqual(hash)
olarak yeniden yazarsam, birim testlerim geçecek, ancak LinqToSql ile konuşurken bir istisna yapıyorum. (System.NotSupportedException: 'SequenceEqual' sorgusu işleci desteklenmez.)
Bu soruyu, birim sınamalarımı bir bellek içi takma adla ve aynı zamanda LinqToSql?
+1 - Başlangıçta aynı şeyi yapıyordum ama sonra IO'nun * 1 * talebini azaltabileceğimi ve sadece şifreleri normal LINQ ile karşılaştırabileceğimi farkettim. – TheCloudlessSky