Лабораторная работа 6 Никитина Дарья ПИН 31Д
.docx
Лабораторная работа 6. Касса в магазине
Конструирование программного обеспечения
дарья Никитина пин-31Д
Разработать программу в соответствии со своим вариантом и подготовить к ней набор модульных тестов. Провести Unit-тестирование и анализ покрытия кода в модульных тестах.
Модульное тестирование:
Авторизация
Прием поставки
До поставки сток:
Приме поставки:
После приема поставки:
Информация об остатках на складе
Возврат товара
Сток до возврата:
Возврат:
Сток после возврата:
Продажа товара
Сток до продажи:
Продажа:
Сток после продажи:
Unit-тестирование классов:
Autorization
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace Project4
{
class Autorization
{
public static void Main()
{
string[,] E = new string[,]
{
{"divano29", "123" },
{"admin", "456" }
};
while (true)
{
Console.WriteLine("Введите логин сотрудника:");
string l = Console.ReadLine();
bool fl = false;
string pass="";
for (int i=0; i<2; i++)
{
if (E[i,0] == l)
{
pass = E[i,1];
fl = true;
}
}
if (!fl)
{
Console.WriteLine("Сотрудника с таким логином не существует");
}
else
{
Console.WriteLine("Введите пароль сотрудника:");
string l2 = Console.ReadLine();
if (l2 == pass)
break;
else
{
Console.WriteLine("Пароль не верен");
break;
}
}
}
Console.ReadLine();
}
}
}
Работает корректно
Delivery
Unit-тестирование не имеет смысла, так как вся суть данного класса в коррекции информации об остатках на складе в файле. Иных действий не совершается.
Employee
Данный класс в программе работает самостоятельно. Изменения для тестирования не требуются.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CashDesk
{
public class Employee
{
protected string _login = "ivaniv";
public virtual string Login
{
get
{
return _login;
}
set
{
_login = value;
}
}
protected string _password = "ivaniv123";
public virtual string Password
{
get
{
return _password;
}
set
{
_password = value;
}
}
public virtual string GenerateNewPassword()
{
int num = 8;
char[] letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789".ToCharArray();
Random rand = new Random();
_password = "";
for (int i = 1; i <= num; i++)
{
int letter_num = rand.Next(0, letters.Length - 1);
_password += letters[letter_num];
}
return _password;
throw new System.NotImplementedException();
}
}
}
Menu
Данный класс фактически запускает работу других, соответственно, без взаимодействия работать не будет.
NewCheck
Аналогично с Delivery: Unit-тестирование не имеет смысла, так как вся суть данного класса в коррекции информации об остатках на складе в файле. Иных действий не совершается.
Product
Данный класс содержит только атрибуты, поэтому тестирование не имеет смысла.
Return
Аналогично с Delivery и NewCheck: Unit-тестирование не имеет смысла, так как вся суть данного класса в коррекции информации об остатках на складе в файле. Иных действий не совершается.
Search
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace Project4
{
class Search
{
public static void Main()
{
int[,] S = new int[,]
{
{1, 12 },
{2, 21 }
};
Console.WriteLine("Для получения информации о количестве товара на складе введите его артикул. Для выхода - esc");
string line = Console.ReadLine();
int st = 0;
bool f = false;
if (line != "esc")
{
for(int i=0; i<2; i++)
{
if (S[i,0] == Convert.ToInt32(line))
{
st = S[i,1];
f = true;
}
}
if (f)
{
Console.WriteLine("На складе есть:");
Console.WriteLine(st);
}
else
Console.WriteLine("Товара с таким артикулом нет на складе");
}
Console.ReadLine();
}
}
}
Работает корректно.
Stock
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace Project4
{
class Search
{
public static void Main()
{
int[,] S = new int[,]
{
{1, 12 },
{2, 21 }
};
string Type = Console.ReadLine();
int Art = Convert.ToInt32(Console.ReadLine());
int Value = Convert.ToInt32(Console.ReadLine());
if (Type == "true")
{
bool flag = false;
for(int i=0; i<2; i++)
{
if (S[i,0] == Art)
{
S[i,1] += Value;
flag = true;
}
}
if (flag == false)
{
S[2,1] = Art;
S[2,2] = Value;
}
}
else
{
bool flag = false;
for (int i = 0; i < 2; i++)
{
if (S[i, 0] == Art)
{
S[i, 1] -= Value;
flag = true;
}
}
if (flag == false)
{
Console.WriteLine("Товара с таким артикулом нет на складе");
}
}
Console.WriteLine(Convert.ToString(S[0,0]) + " " + Convert.ToString(S[0,1]) + " " + Convert.ToString(S[1,0]) + " " + Convert.ToString(S[1,1]));
Console.ReadLine();
}
}
}
Работает корректно