SHARE
TWEET

DummyCalculatorTest

mcgrab May 21st, 2019 61 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using Xunit;
  2. using DummyCalculator;
  3. using System;
  4.  
  5. namespace DummyCalculatorTest
  6. {
  7.     public class UnitTest1
  8.     {
  9.         // Сложение
  10.         // void - метод, который ничего не возвращает
  11.         [Fact]
  12.         public void TestSum()
  13.         {
  14.             // вызов функции сложения
  15.             var result = SimpleCalculator.Sum(2, 3);
  16.             // проверка того, что ожидаемый результат и полученый совпадают
  17.             Assert.Equal(5, result);
  18.         }
  19.  
  20.         // Сложение с параметрами
  21.         // Передаваемые параметры в Inline Data
  22.         // соответствуют переменным a,b,c
  23.         // Пример: a=4, b=5, c=9,
  24.         // Проверка,что  9 = 4+5
  25.         [Theory]
  26.         [InlineData(4, 5, 9)]
  27.         [InlineData(3, 7, 10)]
  28.         [InlineData(1, 1, 2)]
  29.         public void TestSumTheory(double a, double b, double c)
  30.         {
  31.             // вызов функции сложения
  32.             var result = SimpleCalculator.Sum(a, b);
  33.             // проверка того, что ожидаемый результат и полученый совпадают
  34.             Assert.Equal(c, result);
  35.         }
  36.  
  37.         // Вычитание
  38.         [Fact]
  39.         public void TestSubtraction()
  40.         {
  41.             // вызов функции сложения
  42.             var result = SimpleCalculator.Subtraction(5, 3);
  43.             //var t = new List<double>() { 3,4,5,6};
  44.             // проверка того, что ожидаемый результат и полученый совпадают
  45.             Assert.Equal(2, result);
  46.         }
  47.  
  48.         //TODO:
  49.         // Вычитание с параметрами
  50.         // Передаваемые параметры в Inline Data
  51.         // соответствуют переменным a,b,c
  52.         // Пример: a=9, b=5, c=4,
  53.         // Проверка,что  4 = 9-5
  54.  
  55.         [Theory]
  56.         [InlineData(10, 6, 4)]
  57.         [InlineData(66, 6, 60)]
  58.         [InlineData(10, 7, 3)]
  59.  
  60.         public void TestSubtractionTheory(double a, double b, double c)
  61.         {
  62.             // вызов функции сложения
  63.             var result = SimpleCalculator.Subtraction(a, b);
  64.             Assert.Equal(c, result);
  65.         }
  66.  
  67.         // Умножение
  68.         [Fact]
  69.         public void TestMultiplication()
  70.         {
  71.             // вызов функции умножения
  72.             var result = SimpleCalculator.Multiplication(5, 5);
  73.             // проверка того, что ожидаемый результат и полученый совпадают
  74.             Assert.Equal(25, result);
  75.         }
  76.  
  77.         //TODO:
  78.         // Умножение с параметрами
  79.         // Передаваемые параметры в Inline Data
  80.         // соответствуют переменным a,b,c
  81.         // Пример: a=5, b=5, c=25,
  82.         // Проверка,что 25 = 5*5
  83.         [Theory]
  84.         [InlineData(10, 6, 60)]
  85.         [InlineData(66, 0, 0)]
  86.         [InlineData(10, 6.5, 65)]
  87.  
  88.         public void TestMultiplicationTheory(double a, double b, double c)
  89.         {
  90.             // вызов функции умножения
  91.             var result = SimpleCalculator.Multiplication(a, b);
  92.             Assert.Equal(c, result);
  93.         }
  94.  
  95.         //Деление
  96.         [Fact]
  97.         public void TestDivision()
  98.         {
  99.             // вызов функции деления
  100.             //var result = SimpleCalculator.Division(4, 0);
  101.             // проверка того, что ожидаемый результат и полученый совпадают
  102.             //Assert.Equal(2, result);
  103.             Assert.Throws<DivideByZeroException>(() => SimpleCalculator.Division(4, 0));
  104.  
  105.  
  106.             // Что будет при параметрах 5,2?
  107.             // Что должно быть при втором параметре 0.
  108.             // Написание проверки на исключение
  109.             // Assert.Throws<DivideByZeroException>(() => SimpleCalculator.Division(4,0));
  110.         }
  111.  
  112.  
  113.         //TODO:
  114.         // Деление с параметрами
  115.         // Передаваемые параметры в Inline Data
  116.         // соответствуют переменным a,b,c
  117.         // Пример: a=25, b=5, c=5,
  118.         // Проверка,что 5 = 25/5
  119.         [Theory]
  120.         [InlineData(10, 5, 2)]
  121.         [InlineData(25, 5, 5)]
  122.         [InlineData(10, 2, 5)]
  123.         public void TestDivisionTheory(double a, double b, double c)
  124.         {
  125.             // вызов функции деления
  126.             var result = SimpleCalculator.Division(a, b);
  127.             // проверка того, что ожидаемый результат и полученый совпадают
  128.             Assert.Equal(c, result);
  129.         }
  130.  
  131.  
  132.         //TODO:
  133.         // Как можно улучшить данную версию?
  134.         // Какой тип данных лучше использовать для операций?
  135.         // Как переписать метод деления? Обработка исключительных ситуаций.
  136.  
  137.         // **Проверка метода сумасшедшего калькулятора (метод Add(double a, double b))
  138.         // Подключение проекта сумасшедшего калькулятора
  139.         // Написание теста
  140.         // В каком случае метод считает неправильно
  141.         [Theory]
  142.         [InlineData(10, 5, 15)]
  143.         [InlineData(5, 10, 15)]
  144.         [InlineData(2, 2, 4)]
  145.         public void TestCrazyTheory(int a, int b, int c)
  146.         {
  147.             // вызов функции сложение
  148.             var result = CrazyCalculator.CrazyCalculator.Add(a, b);
  149.             // проверка того, что ожидаемый результат и полученый совпадают
  150.             Assert.Equal(c, result);
  151.         }
  152.  
  153.     }
  154. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top