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

Большаков Николай #26

Open
wants to merge 7 commits into
base: master
Choose a base branch
from

Conversation

stupidnessplusplus
Copy link

No description provided.

Новое решение лучше тем, что оно
1. позволяет не изменять проверяющую на равенство часть метода при добавлении новых полей и свойств классу Person. Они автоматически будут проверяться. Если проверять их не нужно, их можно исключить из проверки, добавив Excluding.
2. лучше читается. Видно, что объекты сравниваются по всем полям, кроме Id. В альтернативном решении нужно искать, какие поля присутствуют в сравнении, а какие - нет.
3. работает для каждого типа. Альтернативное решение предполагает, что мы должны каждый раз писать новый метод AreEqual.
@stupidnessplusplus
Copy link
Author

@masssha1308

@@ -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));

// Какие недостатки у такого подхода?
// Какие недостатки у такого подхода?

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")]

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>();

Choose a reason for hiding this comment

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

давай проверим текст ошибки?

}

[TestCaseSource(nameof(GetNotNumbers))]
[Description("Не число")]

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();

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()

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)]

Choose a reason for hiding this comment

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

а почему minValue проверяем в этих 2-х тестах?

Copy link
Author

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>();

Choose a reason for hiding this comment

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

ошибку тоже хорошо бы проверить

Copy link
Author

Choose a reason for hiding this comment

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

В NumberValidator неправильное сообщение у исключения, я у себя исправил и проверял уже на него

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants