-
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
Большаков Николай #26
base: master
Are you sure you want to change the base?
Большаков Николай #26
Conversation
Новое решение лучше тем, что оно 1. позволяет не изменять проверяющую на равенство часть метода при добавлении новых полей и свойств классу Person. Они автоматически будут проверяться. Если проверять их не нужно, их можно исключить из проверки, добавив Excluding. 2. лучше читается. Видно, что объекты сравниваются по всем полям, кроме Id. В альтернативном решении нужно искать, какие поля присутствуют в сравнении, а какие - нет. 3. работает для каждого типа. Альтернативное решение предполагает, что мы должны каждый раз писать новый метод AreEqual.
@@ -34,7 +29,7 @@ public void CheckCurrentTsar_WithCustomEquality() | |||
var expectedTsar = new Person("Ivan IV The Terrible", 54, 170, 70, | |||
new Person("Vasili III of Russia", 28, 170, 60, null)); | |||
|
|||
// Какие недостатки у такого подхода? | |||
// Какие недостатки у такого подхода? |
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.
тут нужен твой коммент про недостатки AreEqual :)
[TestCase(-1)] | ||
[TestCase(int.MinValue)] | ||
[Description("Конструктор бросает исключение, " | ||
+ "если precision меньше или равен 0")] |
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.
почему не одной строкой?
int precision) | ||
{ | ||
var constructor = () => new NumberValidator(precision); | ||
constructor.Should().Throw<ArgumentException>(); |
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.
давай проверим текст ошибки?
} | ||
|
||
[TestCaseSource(nameof(GetNotNumbers))] | ||
[Description("Не число")] |
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.
более информативное описание хочется
false); | ||
|
||
numberValidator.IsValidNumber(number) | ||
.Should().BeFalse(); |
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.
форматирование
[Test] | ||
[Description("Работает с отрицательными числами, " | ||
+ "если в конструкторе не указано обратное")] | ||
public void IsValid_ValidatesBothPositiveAndNegativeNumbers_IfNotDisabledInConstructor() |
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.
number
} | ||
|
||
[TestCase(-1)] | ||
[TestCase(int.MinValue)] |
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.
а почему minValue проверяем в этих 2-х тестах?
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.
На случай, если бы в конструкторе с precision и scale выполнялись какие-нибудь операции, которые могут привести к переполнению инта. Например, если бы была проверка "scale > precision - 1"
int scale) | ||
{ | ||
var constructor = () => new NumberValidator(precision, scale); | ||
constructor.Should().Throw<ArgumentException>(); |
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.
ошибку тоже хорошо бы проверить
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.
В NumberValidator неправильное сообщение у исключения, я у себя исправил и проверял уже на него
No description provided.