Расширение модульного тестирования для проверки равенства


Я создал расширение для юнит-тестирования мои собственные реализации равенства. Это хороший подход, в общем, есть такие модули для модульного тестирования? Что юнит-тестирования расширениями вы пользуетесь?

public static class EqualityExtensions
    {
        /// <summary>
        /// Checks that all variations Equals method conforms to equality by properties
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="variations"></param>
        /// <param name="propertyAccessors">Property accessors specifying which properties contribute to equality</param>
        /// <returns>True, if all instances from a set conform to property equality</returns>
        /// <example>
        /// Assert.IsTrue(from name in new[] {"foo","bar"} from count in new[] {1,2} select new MyClass{Name=name,Count=count}).ConformToPropertyEquality(x=>x.Name,x=>x.Count))
        /// </example>
        public static bool ConformToPropertyEquality<T>(this IEnumerable<T> variations, params Func<T, object>[] propertyAccessors)
        {
            var propertyComparisions =
                from lhs in variations
                from rhs in variations
                select
                    Equals(
                        (from comparator in propertyAccessors select Equals(comparator(lhs), comparator(rhs))).All(c => c),
                        Equals(lhs, rhs)
                    );

            return propertyComparisions.All(p => p);
        }
    }


725
4
задан 27 сентября 2011 в 05:09 Источник Поделиться
Комментарии
1 ответ

Это вполне нормально. В качестве примера SharpTestEx целая библиотека с такими расширениями.

1
ответ дан 27 сентября 2011 в 07:09 Источник Поделиться