-
Notifications
You must be signed in to change notification settings - Fork 32
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
Брайденбихер Виктор #27
base: master
Are you sure you want to change the base?
Conversation
actualTsar.Should().BeEquivalentTo(expectedTsar, options => | ||
options.Excluding(p => p.Id) | ||
.Excluding(p => p.Parent.Id) | ||
.Excluding(p => p.Parent.Parent)); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
В FluentAssertion в методе BeEquivalentTo сравнение рекурсивно, т.е. тут с помощью Excluding(p => p.Parent.Parent) ты искусственно эту рекурсию остановил. Вместо этого рекурсию можно попытаться оставить, но сделать так чтобы ID все равно исключались.
Тут могут помочь поля внутри Excluding(p => p.(посмотреть что тут есть))
.gitignore
Outdated
/Testing/Basic/Basic.sln | ||
/Testing/Basic/Basic.sln.DotSettings.user | ||
/Testing/Basic/~$slides.pptx |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
А зачем файл solution'a добавлять в gitignore?
[TestCase(0, 2, true)] | ||
public void ArgumentException_When_WrongPrecision(int precision, int scale, bool onlyPositive) | ||
{ | ||
Assert.Throws<ArgumentException>(() => new NumberValidator(precision, scale, onlyPositive)); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Сейчас идет проверка того, что ошибка которая выстрелит будет с типом ArgumentException, но мы никак не проверяем что это именно та ошибка, которую мы ожидаем. По хорошему можно проверить еще и сообщение об ошибке.
[TestCase(-1, 2, true)] | ||
[TestCase(-3, 2, false)] | ||
[TestCase(0, 2, true)] | ||
public void ArgumentException_When_WrongPrecision(int precision, int scale, bool onlyPositive) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
По названию теста в общем можно понять, что он проверяет и что мы ожидаем, но как-то не совсем) Может будем придерживаться такоже формата как ты сделал в тестах IsValidNumber:
Какую функциональность проверяем_С какими параметрами_Что ожидаем
.
Например:
NumberValidator_WithInvalidPrecision_ShouldThrowArgumentException
Исправил ошибки, закоммитил в свой репозиторий |
ClassicAssert.AreEqual(expectedTsar.Parent.Height, actualTsar.Parent.Height); | ||
ClassicAssert.AreEqual(expectedTsar.Parent.Parent, actualTsar.Parent.Parent); | ||
actualTsar.Should().BeEquivalentTo(expectedTsar, options => | ||
options.Excluding(p => p.Path.EndsWith("Id"))); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Точно ли нам надо исключать все Id? Может появится поле с "Id" в конце, но мы бы хотели его сравнивать
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Да, это действительно ошибка. Которую мы можем не ожидать. И лучше было исключить явно одно поле "Id"
[TestCase(6, 3, false)] | ||
[TestCase(10, 9, false)] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Кажется что оба кейса проверяют одно и тоже
ClassicAssert.AreEqual(expectedTsar.Parent.Height, actualTsar.Parent.Height); | ||
ClassicAssert.AreEqual(expectedTsar.Parent.Parent, actualTsar.Parent.Parent); | ||
actualTsar.Should().BeEquivalentTo(expectedTsar, options => | ||
options.Excluding((IMemberInfo info) => info.Name == "Id")); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Лучше выносить в константы или использовать nameof(Parent.Id)
Выполнил работу Testing
Наставник - @ksamnole