Исправить ошибки в коде 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);
        }
 
    }
}

Оцени полезность:

13   голосов , оценка 4 из 5
Похожие ответы