Как проверить функцию, которая имеет объекты в качестве параметров в XUnit? - PullRequest
0 голосов
/ 25 октября 2019

У меня есть простая функция, которая берет данные о клиентах и ​​поставщиках, а затем вычисляет налог на основе их местонахождения и другой информации:

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))] подчеркивается красным и не работает.

...