Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Зиновьева Милана @xsitin #24

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,7 @@ public void CheckCurrentTsar()
new Person("Vasili III of Russia", 28, 170, 60, null));
actualTsar.Should().BeEquivalentTo(expectedTsar, options => options
.IncludingNestedObjects()
.Excluding(p => p.Id)
.Excluding(p => p.Parent.Id));
.Excluding(p => p.Path.Contains("Id")));
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

При такой проверке, будут игнорироваться все поля в пути которых есть Id. Так мы можем пропустить что-то важно, если в классе появяться новые поля

//+Проверяет все поля класса на эквивалентность
//+При добавлении нового поля в класс проверка будет автоматически включена
//+Уменьшено количество кода
Expand All @@ -38,6 +37,9 @@ public void CheckCurrentTsar_WithCustomEquality()
//-При появлении новых полей придется переписывать тест
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Есть ещё

//-Функция возвращает bool, что не информативно
//-Для того чтобы узнать различия между царями придется дебажить и проверять каждое условие
//-Используется рекурсивный подход без явно заданного ограничения на рекурсию
//-В IncludingNestedObjects макс глубина рекурсии по умолчанию 10
//-Что не даст уйти сильно в дебри
}

private bool AreEqual(Person? actual, Person? expected)
Expand Down
24 changes: 19 additions & 5 deletions Testing/Basic/Homework/2. NumberValidator/NumberValidatorTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -28,21 +28,35 @@ public void Test()
//Тесты для проверки корректности инициализации

NumberValidator numberForCheck = new NumberValidator(4, 2, true);
numberForCheck.IsValidNumber("").Should().BeFalse();
numberForCheck.IsValidNumber("a.sd").Should().BeFalse();

numberForCheck.IsValidNumber("").Should().BeFalse(because: "Ввод пуст");
numberForCheck.IsValidNumber(null).Should().BeFalse(because: "Ввод пуст");

numberForCheck.IsValidNumber("a.sd").Should().BeFalse(because: "Используются не арабские цифры");
numberForCheck.IsValidNumber("సున్న.నాలుగు").Should().BeFalse(because: "Используются не арабские цифры");
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Это словва, а не числа, для телугу можно посмотреть табличку тут, числа то, что в скобках. Можно поискать ещё различные варианты

numberForCheck.IsValidNumber("IV.III").Should().BeFalse(because: "Используются не арабские цифры");
numberForCheck.IsValidNumber("девять.ноль").Should().BeFalse(because: "Используются не арабские цифры");

numberForCheck.IsValidNumber("9dot8").Should().BeFalse(because: "Некорректный разделитель");
numberForCheck.IsValidNumber("3..2").Should().BeFalse(because: "Некорректный разделитель");
numberForCheck.IsValidNumber("1/2").Should().BeFalse(because: "Некорректный разделитель");

numberForCheck.IsValidNumber("plus9").Should().BeFalse(because: "Некорректный знак");
numberForCheck.IsValidNumber("++1").Should().BeFalse(because: "Некорректный знак");
//Тесты для проверки данных не подходящих под регулярку

numberForCheck.IsValidNumber("0.0").Should().BeTrue();
numberForCheck.IsValidNumber("0").Should().BeTrue();
numberForCheck.IsValidNumber("+1.23").Should().BeTrue();
numberForCheck.IsValidNumber("+1,23").Should().BeTrue(because: "Знак запятой допустим");
numberForCheck = new NumberValidator(4, 2, false);
numberForCheck.IsValidNumber("-1.23").Should().BeTrue();
//Тесты для проверки "нормальных" и пороговых значений

numberForCheck = new NumberValidator(3, 2, true);
numberForCheck.IsValidNumber("00.00").Should().BeFalse();
numberForCheck.IsValidNumber("-0.0").Should().BeFalse();
numberForCheck.IsValidNumber("+0.00").Should().BeFalse();
numberForCheck.IsValidNumber("00.00").Should().BeFalse(because: "Используется больше символов чем положено");
numberForCheck.IsValidNumber("-0.0").Should().BeFalse(because: "Число отрицательное, хотя флаг не выставлен");
numberForCheck.IsValidNumber("+0.00").Should().BeFalse(because: "Используется больше символов чем положено");
//Тесты для проверки неподходящих по условию значений
}
}
Expand Down