Исправить ошибки в коде unit теста - C#
Формулировка задачи:
Серьезность Код Описание Проект Файл Строка Состояние подавления Ошибка CS0246 Не удалось найти тип или имя пространства имен "Movie" (возможно, отсутствует директива using или ссылка на сборку). UnitTestCinema C:\Users\hp\Desktop\Cinema\UnitTestCinema\UnitCinema.cs 9 Активно Ошибка CS0246 Не удалось найти тип или имя пространства имен "Movie" (возможно, отсутствует директива using или ссылка на сборку). UnitTestCinema C:\Users\hp\Desktop\Cinema\UnitTestCinema\UnitCinema.cs 20 Активно Ошибка CS0246 Не удалось найти тип или имя пространства имен "Movie" (возможно, отсутствует директива using или ссылка на сборку). UnitTestCinema C:\Users\hp\Desktop\Cinema\UnitTestCinema\UnitCinema.cs 43 Активно Ошибка CS0246 Не удалось найти тип или имя пространства имен "Movie" (возможно, отсутствует директива using или ссылка на сборку). UnitTestCinema C:\Users\hp\Desktop\Cinema\UnitTestCinema\UnitCinema.cs 43 Активно Ошибка CS0246 Не удалось найти тип или имя пространства имен "Place" (возможно, отсутствует директива using или ссылка на сборку). UnitTestCinema C:\Users\hp\Desktop\Cinema\UnitTestCinema\UnitCinema.cs 60 Активно
Код теста (в котором надо исправить ошибки):
код программы:
using System; using Microsoft.VisualStudio.TestTools.UnitTesting; namespace UnitTestCinema { [TestClass()] public class MovieTests { private Movie _movie; [TestInitialize] public void Initialization() { DateTime datetime = new DateTime(year: 2018, month: 1, day: 28, hour: 13, minute: 15, second: 0); string name = "Операция Ы"; int price = 300; string genre = "Комедия"; TimeSpan duration = TimeSpan.FromMinutes(120); _movie = new Movie(datetime, name, price, genre, duration); } [TestMethod()] public void MovieTest() { //Arrange int year = 2018; int month = 1; int day = 28; int hour = 13; int minute = 15; int second = 0; DateTime datetime = new DateTime(year, month, day, hour, minute, second); string name = "Операция Ы"; int price = 300; string genre = "Комедия"; int minutes = 120; TimeSpan duration = TimeSpan.FromMinutes(minutes); //Act Movie movie = new Movie(datetime, name, price, genre, duration); //Assert Assert.IsNotNull(movie); Assert.AreEqual(name, movie.name); Assert.AreEqual(datetime, movie.datetime); Assert.AreEqual(price, movie.price); Assert.AreEqual(genre, movie.genre); Assert.AreEqual(duration, movie.duration); Assert.IsTrue(movie.free_places.Length > 0); Assert.IsTrue(movie.free_pl_count > 0); } [TestMethod()] public void CheckForPlaceTest() { //Arrange Place place = _movie.free_places.First(); int row = place.row; int pnumber = place.place_number; //Act bool result = _movie.CheckForPlace(row, pnumber); //Assert Assert.IsTrue(result); } } }
using System; namespace Cinema { class Program { static void Main(string[] args) { Playbill playbill = new Playbill(); // 1. Вывод сеансов playbill.PrintMovies(); // 2. Ввод пользователем сеанса DateTime dt; Console.WriteLine("Введите дату:"); if (!DateTime.TryParse(Console.ReadLine(), out dt)) { Console.WriteLine("Не верный формат даты. Нажмите что-нибудь для выхода..."); Console.ReadKey(true); return; } Console.WriteLine("Введите название фильма:"); string filmname = Console.ReadLine(); Movie mov; if ((mov = playbill.SearchMovie(dt, filmname)) == null) { } // 3.1 Вывод свободных мест в кинозале mov.PrintFreePlaces(); int answ; // 3.2 Выбор места Console.WriteLine("Количество билетов: "); if (!Int32.TryParse(Console.ReadLine(), out answ)) { Console.WriteLine("Не верный формат данных. Нажмите что-нибудь для выхода..."); Console.ReadKey(true); return; } Console.ReadKey(true); } } // стуктруа "Место" struct Place { public int row;// ряд public int place_number;// номер сиденья public Place(int r, int p) { row = r; place_number = p; } } // класс "Сеанс" class Movie { public readonly DateTime datetime;// дата сеанса public readonly string name; public readonly int price; public readonly string genre; public readonly TimeSpan duration;// продолжительность сеанса public Place[] free_places; public int free_pl_count;// кол-во свободных мест private static readonly int fr_pl_MAX_cnt = 100; private static readonly int rows_MAX_cnt = 10; private static Random random = new Random(DateTime.Now.Millisecond); public Movie(DateTime datetime, string name, int price, string genre, TimeSpan duration) { this.datetime = datetime; this.name = name; this.price = price; this.genre = genre; this.duration = duration; free_pl_count = random.Next(1, fr_pl_MAX_cnt); GenerateFreePlaces(); } private void GenerateFreePlaces() { // рандомное генерирование свободных мест free_places = new Place[random.Next(1, rows_MAX_cnt)]; for (int i = 0; i < free_places.Length; i++) free_places[i] = new Place(random.Next(0, rows_MAX_cnt), random.Next(0, fr_pl_MAX_cnt)); } public bool CheckForPlace(int row, int pnumber) { foreach (Place p in free_places) if (row == p.row && pnumber == p.place_number) return true; return false; } public void PrintFreePlaces() { Console.WriteLine("Количество свободных мест | Ряд | Места"); Console.WriteLine(free_pl_count); foreach (Place p in free_places) Console.WriteLine("\t\t\t {0}\t {1}", p.row, p.place_number); } } // класс "Киноафиша" class Playbill { public Movie[] movies; public Playbill() { movies = new Movie[3]; movies[0] = new Movie(new DateTime(2018, 01, 12, 14, 00, 00), "Матрица", 19, "Фантастика", new TimeSpan(2, 0, 0)); movies[1] = new Movie(new DateTime(2018, 01, 15, 19, 00, 00), "Елеки", 13, "Фантастика", new TimeSpan(1, 0, 0)); movies[2] = new Movie(new DateTime(2018, 01, 24, 09, 00, 00), "Небо", 11, "Фантастика", new TimeSpan(1, 30, 0)); } public Movie SearchMovie(DateTime date, string name) { // поиск сеанса с заданной датой и названием foreach (Movie m in movies) if (m.datetime.Date == date && m.name == name) return m; else continue; return null; } public void PrintMovies() { Console.WriteLine(" Дата\t |\tВремя | Название фильма | Стоимость билета |\t Жанр\t | Время сеанса"); foreach (Movie m in movies) Console.WriteLine("{0}\t{1:d2}:{2:d2}\t{3}\t\t\t{4}р.\t\t{5}\t{6} мин.", m.datetime.Date.ToShortDateString(), m.datetime.Hour, m.datetime.Minute, m.name, m.price, m.genre, m.duration.TotalMinutes); } } }
Решение задачи: «Исправить ошибки в коде unit теста»
textual
Листинг программы
using System; using Microsoft.VisualStudio.TestTools.UnitTesting; using Cinema; using System.Linq; namespace UnitTestCinema { [TestClass()] public class MovieTests { private Movie _movie; [TestInitialize] public void Initialization() { DateTime datetime = new DateTime(year: 2018, month: 1, day: 28, hour: 13, minute: 15, second: 0); string name = "Операция Ы"; int price = 300; string genre = "Комедия"; TimeSpan duration = TimeSpan.FromMinutes(120); _movie = new Movie(datetime, name, price, genre, duration); } [TestMethod()] public void MovieTest() { //Arrange int year = 2018; int month = 1; int day = 28; int hour = 13; int minute = 15; int second = 0; DateTime datetime = new DateTime(year, month, day, hour, minute, second); string name = "Операция Ы"; int price = 300; string genre = "Комедия"; int minutes = 120; TimeSpan duration = TimeSpan.FromMinutes(minutes); //Act Movie movie = new Movie(datetime, name, price, genre, duration); //Assert Assert.IsNotNull(movie); Assert.AreEqual(name, movie.name); Assert.AreEqual(datetime, movie.datetime); Assert.AreEqual(price, movie.price); Assert.AreEqual(genre, movie.genre); Assert.AreEqual(duration, movie.duration); Assert.IsTrue(movie.free_places.Length > 0); Assert.IsTrue(movie.free_pl_count > 0); } [TestMethod()] public void CheckForPlaceTest() { //Arrange Place place = _movie.free_places.First(); int row = place.row; int pnumber = place.place_number; //Act bool result = _movie.CheckForPlace(row, pnumber); //Assert Assert.IsTrue(result); } } }