0 / 0 / 0
Регистрация: 14.05.2011
Сообщений: 78
1

Как правильно организовать Unit Test?

19.06.2014, 08:46. Показов 1690. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток. Никак не могу разобраться в этом тестировании, прошу вашей помощи.
Есть программа:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
namespace ConsoleApplication1
{
    class Program
    {
        static void zapoln(List<Statistik> sp)
        {
            string[] str = { "Азии", "Африки", "Северной и Центральной Америки", "Южной Америки", "Антарктиды", "Европа", "Австралии и Окенании" };
 
            Vvod(sp, str);
        }//Заполнение
 
        private static void Vvod(List<Statistik> sp, string[] str)
        {
            for (int i = 0; i < str.Length; i++)
            {
                double a, b, c, d;
                while (true)
                {
                    try
                    {
                        Console.WriteLine("Введите данные для {0}(через пробел):", str[i]); string text = Console.ReadLine();
                        var sannar = text.Split(' ');
                        a = double.Parse(sannar[0]); b = double.Parse(sannar[1]); c = double.Parse(sannar[2]); d = double.Parse(sannar[3]);
                        break;
                    }
                    catch (Exception)
                    { continue; }
                }
 
                sp.Add(new Statistik(str[i], a, b, c, d));
            }
        }
 
        static void print(List<Statistik> sp)
        {
            foreach (var i in sp) Console.WriteLine("{0} {1} {2} {3} {4}", i.Name, i.Area, i.Haverage, i.Hmax, i.People);
        }
        static void Main(string[] args)
        {
            List<Statistik> sp = new List<Statistik>();
            zapoln(sp);//Заполнение через пробел
 
            print(sp);
            Console.WriteLine("a");
            a(sp);
            Console.WriteLine("b");
            b(sp);
            Console.WriteLine("c");
            c(sp);
            Console.ReadKey();
        }
             static void a(List<Statistik> t)
        {
                 foreach (Statistik p in t)
            Console.WriteLine("Население наименее заселенной части света составляет {0}" + t.Min(a => a.People) + " млн.чел.");
            Console.WriteLine("Население наиболее заселенной части света составляет " + t.Max(a => a.People) + " млн.чел.");
            foreach (Statistik p in t.OrderByDescending(a => a.Area))
                Console.WriteLine("{0,35} {1,5} {2,5} {3,5} {4,5}", p.Name, p.Area, p.Haverage, p.Hmax, p.People);
 
        }
        static void b(List<Statistik> t)
        {
            Console.WriteLine("Наибольшая разница между средней высотой и максимальной составляет " + t.Max(a => a.Hmax - a.Haverage)+" метров");
            foreach (Statistik p in t.OrderBy(a => a.Hmax))
                Console.WriteLine("{0,35} {1,5} {2,5} {3,5} {4,5}", p.Name, p.Area, p.Haverage, p.Hmax, p.People);
 
        }
        static void c(List<Statistik> t)
        {
            Console.WriteLine("Самая максимальная по площади часть света: " + t.Max(a => a.Area)+" млн.км2.");
            foreach (Statistik p in t.OrderBy(a => a.Haverage))
                Console.WriteLine("{0,35} {1,5} {2,5} {3,5} {4,5}", p.Name, p.Area, p.Haverage, p.Hmax, p.People);
 
        }
        public class Statistik
        {
            string name;
            double area, haverage, hmax, people;
            public string Name
            {
                get { return name; }
                set { name = value; }
            }
            public double Area
            {
                get { return area; }
                set { area = value; }
            }
            public double Haverage
            {
                get { return haverage; }
                set { haverage = value; }
            }
            public double Hmax
            {
                get { return hmax; }
                set { hmax = value; }
            }
            public double People
            {
                get { return people; }
                set { people = value; }
            }
            public Statistik(string q, double a, double b, double c, double d)
            {
                name = q;
                area = a;
                haverage = b;
                hmax = c;
                people = d;
            }
        }
    }
}
Хочу выполнить тест для следующего куска:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
private static void Vvod(List<Statistik> sp, string[] str)
        {
            for (int i = 0; i < str.Length; i++)
            {
                double a, b, c, d;
                while (true)
                {
                    try
                    {
                        Console.WriteLine("Введите данные для {0}(через пробел):", str[i]); string text = Console.ReadLine();
                        var sannar = text.Split(' ');
                        a = double.Parse(sannar[0]); b = double.Parse(sannar[1]); c = double.Parse(sannar[2]); d = double.Parse(sannar[3]);
                        break;
                    }
                    catch (Exception)
                    { continue; }
                }
 
                sp.Add(new Statistik(str[i], a, b, c, d));
            }
        }
Возможно ли это сделать? Или тут совсем с программой беда?

Добавлено через 9 часов 31 минуту
Вот я начал...не получается закончить
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
 
namespace UnitTestProject1
{
    [TestClass]
    public class UnitTest1
    {
        [TestMethod]
        public void TestMethod1()
        {
        List<Statistik> sp = new List<Statistik>();
        for (int i = 0; i < str.Length; i++)
            {
        sp.Add(new Statistik(str[i], a, b, c, d));
        }
            string[] str = { "Азии", "Африки", "Северной и Центральной Америки", "Южной Америки", "Антарктиды", "Европа", "Австралии и Окенании" };
                        for (int i = 0; i < str.Length; i++)
                        {
           string a = double.Parse(1);
            double b = 2;
            double c = 3;
            double d = 4;
        Statistik expected = 
        }
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.06.2014, 08:46
Ответы с готовыми решениями:

Как создать Unit test
В 2010 студии я нажимал правой кнопкой на функцию и там выбирал Create Unit test. А как в 2012 это...

Unit Test
Как пишутся модульные тесты?прочитал несколько книг, но не в одной не встречал глав/заголовков о...

Unit Test Asserts
Selenium, Unit Test, VS. Есть автоматизированный сценарий, нужно в конструкции assert на страницу...

Unit test dependency injection
Посоветуйте литературы по сабжу. А еще лучше примеры проектов покрытые тестами.

2
653 / 589 / 171
Регистрация: 17.07.2012
Сообщений: 1,670
Записей в блоге: 1
19.06.2014, 09:29 2
Что-то мне подсказывает, что написать на ваш код юнит тест - гиблая затея.

А если поконкретнее: вам надо разделить методы ввода пользователем данных и формирования коллекции. Чтобы написать тест на само формирование.
0
0 / 0 / 0
Регистрация: 14.05.2011
Сообщений: 78
19.06.2014, 10:43  [ТС] 3
а как это сделать??

Добавлено через 30 секунд
кто может сделать помогите пожалуйста, готов заплатить даже. Спасибо!
0
19.06.2014, 10:43
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.06.2014, 10:43
Помогаю со студенческими работами здесь

Модульные тесты (UNIT TEST)
Всем привет. Есть небольшая проблемка. Подскажите пожалуйста ко чем сможет. Проблема следующая. ...

Доступ к классу с Unit Test Project
Задание: 1. Создайте просто строковый калькулятор с методом int Add(string numbers). 1.1....

Обращение из Unit Test к функцие в программе
Как обратиться из Unit Test к функцие в программе?

Создание простейшего Unit Test Project в VS2015Community
Пытаюсь понять основы тестирования, запнулся на самом начале. Пробую по инструкции MSDN. Со...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru