Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using Xunit;
- using DummyCalculator;
- using System;
- namespace DummyCalculatorTest
- {
- public class UnitTest1
- {
- // Сложение
- // void - метод, который ничего не возвращает
- [Fact]
- public void TestSum()
- {
- // вызов функции сложения
- var result = SimpleCalculator.Sum(2, 3);
- // проверка того, что ожидаемый результат и полученый совпадают
- Assert.Equal(5, result);
- }
- // Сложение с параметрами
- // Передаваемые параметры в Inline Data
- // соответствуют переменным a,b,c
- // Пример: a=4, b=5, c=9,
- // Проверка,что 9 = 4+5
- [Theory]
- [InlineData(4, 5, 9)]
- [InlineData(3, 7, 10)]
- [InlineData(1, 1, 2)]
- public void TestSumTheory(double a, double b, double c)
- {
- // вызов функции сложения
- var result = SimpleCalculator.Sum(a, b);
- // проверка того, что ожидаемый результат и полученый совпадают
- Assert.Equal(c, result);
- }
- // Вычитание
- [Fact]
- public void TestSubtraction()
- {
- // вызов функции сложения
- var result = SimpleCalculator.Subtraction(5, 3);
- //var t = new List<double>() { 3,4,5,6};
- // проверка того, что ожидаемый результат и полученый совпадают
- Assert.Equal(2, result);
- }
- //TODO:
- // Вычитание с параметрами
- // Передаваемые параметры в Inline Data
- // соответствуют переменным a,b,c
- // Пример: a=9, b=5, c=4,
- // Проверка,что 4 = 9-5
- [Theory]
- [InlineData(10, 6, 4)]
- [InlineData(66, 6, 60)]
- [InlineData(10, 7, 3)]
- public void TestSubtractionTheory(double a, double b, double c)
- {
- // вызов функции сложения
- var result = SimpleCalculator.Subtraction(a, b);
- Assert.Equal(c, result);
- }
- // Умножение
- [Fact]
- public void TestMultiplication()
- {
- // вызов функции умножения
- var result = SimpleCalculator.Multiplication(5, 5);
- // проверка того, что ожидаемый результат и полученый совпадают
- Assert.Equal(25, result);
- }
- //TODO:
- // Умножение с параметрами
- // Передаваемые параметры в Inline Data
- // соответствуют переменным a,b,c
- // Пример: a=5, b=5, c=25,
- // Проверка,что 25 = 5*5
- [Theory]
- [InlineData(10, 6, 60)]
- [InlineData(66, 0, 0)]
- [InlineData(10, 6.5, 65)]
- public void TestMultiplicationTheory(double a, double b, double c)
- {
- // вызов функции умножения
- var result = SimpleCalculator.Multiplication(a, b);
- Assert.Equal(c, result);
- }
- //Деление
- [Fact]
- public void TestDivision()
- {
- // вызов функции деления
- //var result = SimpleCalculator.Division(4, 0);
- // проверка того, что ожидаемый результат и полученый совпадают
- //Assert.Equal(2, result);
- Assert.Throws<DivideByZeroException>(() => SimpleCalculator.Division(4, 0));
- // Что будет при параметрах 5,2?
- // Что должно быть при втором параметре 0.
- // Написание проверки на исключение
- // Assert.Throws<DivideByZeroException>(() => SimpleCalculator.Division(4,0));
- }
- //TODO:
- // Деление с параметрами
- // Передаваемые параметры в Inline Data
- // соответствуют переменным a,b,c
- // Пример: a=25, b=5, c=5,
- // Проверка,что 5 = 25/5
- [Theory]
- [InlineData(10, 5, 2)]
- [InlineData(25, 5, 5)]
- [InlineData(10, 2, 5)]
- public void TestDivisionTheory(double a, double b, double c)
- {
- // вызов функции деления
- var result = SimpleCalculator.Division(a, b);
- // проверка того, что ожидаемый результат и полученый совпадают
- Assert.Equal(c, result);
- }
- //TODO:
- // Как можно улучшить данную версию?
- // Какой тип данных лучше использовать для операций?
- // Как переписать метод деления? Обработка исключительных ситуаций.
- // **Проверка метода сумасшедшего калькулятора (метод Add(double a, double b))
- // Подключение проекта сумасшедшего калькулятора
- // Написание теста
- // В каком случае метод считает неправильно
- [Theory]
- [InlineData(10, 5, 15)]
- [InlineData(5, 10, 15)]
- [InlineData(2, 2, 4)]
- public void TestCrazyTheory(int a, int b, int c)
- {
- // вызов функции сложение
- var result = CrazyCalculator.CrazyCalculator.Add(a, b);
- // проверка того, что ожидаемый результат и полученый совпадают
- Assert.Equal(c, result);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement