У меня есть простая функция, которая берет данные о клиентах и поставщиках, а затем вычисляет налог на основе их местонахождения и другой информации:
static int CountTax(Supplier tiek, Client kl, bool same_country)
{
if ( !tiek.is_PVM_payer)
return 0;
else
{
if (!kl.EU)
return 0;
else
{
if (same_country)
return kl.x;
else
{
if (kl.is_PVM_payer)
return 0;
else
return kl.x;
}
}
}
}
Теперь я должен написать тесты для этой функции. Я впервые сталкиваюсь с тестами. Я использую тестирование XUnit. И мой тестовый класс выглядит так:
using System;
using Xunit;
namespace CountTax_tests
{
public class UnitTest1
{
[Theory]
[InlineData(typeof(Client))]
public void Tax_is_0()
{
// arrange
int expectedVal = 0;
int actualVal;
/// act
actualVal = MyProgram.MyprogramCode.CountTax(supplier, client, same_country);
// assert
Assert.Equal(expectedVal, actualVal);
}
[Fact]
public void PVM_is_x()
{
int expectedVal = x;
int actualVal;
actualVal = MyProgram.MyprogramCode.CountTax(supplier, client, same_country);
Assert.Equal(expectedVal, actualVal);
}
}
}
Но как мне передать параметры моего Клиента и Поставщика этому тесту? Пожалуйста, помогите мне и ведите по пути, потому что я совершенно новый и мне ничего не понятно даже после многих уроков ... Может быть, мне нужно использовать [Теорию]? Или, может быть, [Факт]? Или, может быть, невозможно передать классы в качестве параметров? Кроме того, [InlineData (typeof (Client))] подчеркивается красным и не работает.