Я тестирую функцию с помощью XUnit. Хотя тест правильно выполняет работу по определению существования «System.DateTime» в возвращаемом массиве Type [], я должен сделать это, перейдя через массив. (Зачем проверять существование свойства DateTime, о котором я уже знаю? Поскольку я изучаю TDD, играя с некоторым кодом, с которым я уже знаком.)Можно ли утверждать существование одного или нескольких элементов в массиве без цикла for?
Есть ли функция Assert, которая может подтвердить существование элемента в массив? Я задаю вопрос, потому что, хотя он работает, я не могу не задаться вопросом, есть ли более эффективный или компактный способ сделать это, кроме того, что цикл проходит через массив.
Я надеялся, что в Assert есть недокументированная функция, которую я мог бы использовать.
/// <summary>
/// This tests the "GetPropertyTypes(PropertyInfo[] properties)" function to
/// confirm that any DateTime properties in the "TestClass" are confirmed as existing.
/// </summary>
[Fact]
public void ConfirmDateTimePropertiesInModelExist()
{
// Arrange
PropertyInfo[] propertiesInfos = typeof(TestClass).GetProperties();
int dateTimeCount = 0;
// Act
// The names array the list of property types in "TestClass"
Type[] propertyTypes = ExportToExcelUtilities.GetPropertyTypes(propertiesInfos);
for (int i = 0; i < propertyTypes.Length; i++)
if (propertyTypes[i] == typeof(DateTime))
dateTimeCount++;
// Assert
// Assert that the names array contains one or more "System.DateTime" properties.
Assert.True(dateTimeCount>0,
"Existing DateTime properties were not identified in the class.");
}
Он отлично работал. –