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

Брайденбихер Виктор #27

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

Conversation

viteokB
Copy link

@viteokB viteokB commented Nov 5, 2024

Выполнил работу Testing
Наставник - @ksamnole

Comment on lines 35 to 38
actualTsar.Should().BeEquivalentTo(expectedTsar, options =>
options.Excluding(p => p.Id)
.Excluding(p => p.Parent.Id)
.Excluding(p => p.Parent.Parent));
Copy link

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
Comment on lines 4 to 6
/Testing/Basic/Basic.sln
/Testing/Basic/Basic.sln.DotSettings.user
/Testing/Basic/~$slides.pptx
Copy link

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));
Copy link

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)
Copy link

Choose a reason for hiding this comment

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

По названию теста в общем можно понять, что он проверяет и что мы ожидаем, но как-то не совсем) Может будем придерживаться такоже формата как ты сделал в тестах IsValidNumber:
Какую функциональность проверяем_С какими параметрами_Что ожидаем.

Например:
NumberValidator_WithInvalidPrecision_ShouldThrowArgumentException

@viteokB
Copy link
Author

viteokB commented Nov 6, 2024

Исправил ошибки, закоммитил в свой репозиторий

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")));
Copy link

Choose a reason for hiding this comment

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

Точно ли нам надо исключать все Id? Может появится поле с "Id" в конце, но мы бы хотели его сравнивать

Copy link
Author

Choose a reason for hiding this comment

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

Да, это действительно ошибка. Которую мы можем не ожидать. И лучше было исключить явно одно поле "Id"

Comment on lines 40 to 41
[TestCase(6, 3, false)]
[TestCase(10, 9, false)]
Copy link

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"));
Copy link

Choose a reason for hiding this comment

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

Лучше выносить в константы или использовать nameof(Parent.Id)

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