Третья моя программа написана по наработкам второй(для создания электронных книг), поэтому содержит некоторые методы такого же названия например «openBookBase», что в последующих версиях будет исправлено на «openTestBase»
Программа представляет собой миникомплекс, включающий: создание, тестирование, отчёт(статистика). Версия 0.3.1 —
исходник + сборки.
Скрин последней версии:
Ссылка на SourceForge.net. Код под GNU GPL v2 — OpenSource. С++(Qt).
Описание: кроссплатформенная программа для создания и редактирования тестов, с последующим тестированием.
Её могут использовать все, кому понадобиться быстро создать тест и проверить знания. Можно будет создать вопрос типа «Что показано на изображении» и использовать как в школе так и на предприятии, для сдачи квалификационных экзаменов. Все тесты хранятся в базе данных SQLite3. Это позволяет располагать файл базы на любом сервере(Windows, GNU / Linux, и т. д.), без необходимости установки сервера баз данных.
Создание тестов для проведения экзаменов
Всё находится в одном исполняемом файле. Для редактирования / тестирования, необходимо переключить соответствующий пункт из меню «Режим». Отчёт о протестировавшихся представлен статистикой.
Внутренняя архитектура: список вопросов хранится в QStringList ListQuestions, список правильных ответов в QStringList ListRightAnswer, варианты ответа при тестировании в QStringList ListCheckRightAnswer. Изображения к тесту находятся в QByteArray ListImages[100000]. Режим редактирования защищён паролем, который пока что, хранится в открытом виде.
Похожие статьи
- SitemapXML (Qt)
- Linux и C++
- Программа для создания кроссвордов
Купить рекламу на сайте за 1000 руб
Да и по любым другим вопросам пишите на почту
- Форум Web программирование (веб)
- Форум Python (питон)
- Форум PHP (пхп)
- Форум Perl (перл)
- Форум Ruby (руби)
- Форум JavaScript (яваскрипт)
- Форум Ajax (аякс)
- Форум SQL (эскюэл)
- Форум HTML (хтмл)
- Форум CSS (сиэсэс)
- Форум XML (иксмл)
- Форум JSON (джсон)
- Форум Pascal (паскаль)
- Форум Delphi (делфи)
- Форум C++ (си плюс плюс)
- Форум C++ Builder (си билдер)
- Форум Visual C++ (визуал си)
- Форум .NET (точка нет)
- Форум ASP.NET (асп нет)
- Форум Windows Forms (виндовс формс)
- Форум базы данных ADO.NET (адо нет)
- Форум .NET Framework WPF, UWP, WinRT, XAML ()
- Форум Java Android (джава андроид)
- Форум Java web (джава веб)
- Форум Kotlin (котлин)
- Форум Assembler (ассемблер)
- Форум WinApi (вин апи)
- Форум Excel (эксель)
- Форум Word (ворд)
- Форум Access (аксесс)
- Форум по администрированию ОС
- Форум по администрированию серверов и VDS
- Форум Windows
- Форум Ubuntu
- Форум Android
Источник: www.programmersclub.ru
Пошаговое руководство. Создание и запуск модульных тестов для управляемого кода
Область применения:Visual Studio
Visual Studio для Mac
Visual Studio Code
В этой статье приводится подробное описание процесса создания, запуска и настройки набора модульных тестов с помощью платформы модульных тестов Майкрософт для управляемого кода и обозревателя тестов Visual Studio. В руководстве производится создание проекта C#, находящегося в стадии разработки, создание тестов для проверки его кода, запуск тестов и изучение результатов. После этого производится изменение кода проекта и повторный запуск тестов. Если вы хотите получить концептуальный обзор этих задач перед выполнением этих шагов, см. Основы модульного тестирования.
Создайте проект для тестирования
- Запустите Visual Studio.
- На начальном экране выберите Создать проект.
- Найдите и выберите шаблон проекта Консольное приложение на C#для .NET Core и щелкните Далее.
Примечание Если шаблон Консольное приложение отсутствует, его можно установить из окна Создание проекта. В сообщении Не нашли то, что искали? выберите ссылку Установка других средств и компонентов. После этого в Visual Studio Installer выберите рабочую нагрузку Кроссплатформенная разработка .NET Core.
Примечание Если файл Program.cs не откроется в редакторе, дважды щелкните Program.cs в обозревателе решений, чтобы открыть его.
using System; namespace BankAccountNS < /// /// Bank account demo class. /// public class BankAccount < private readonly string m_customerName; private double m_balance; private BankAccount() < >public BankAccount(string customerName, double balance) < m_customerName = customerName; m_balance = balance; >public string CustomerName < get < return m_customerName; >> public double Balance < get < return m_balance; >> public void Debit(double amount) < if (amount >m_balance) < throw new ArgumentOutOfRangeException(«amount»); >if (amount < 0) < throw new ArgumentOutOfRangeException(«amount»); >m_balance += amount; // intentionally incorrect code > public void Credit(double amount) < if (amount < 0) < throw new ArgumentOutOfRangeException(«amount»); >m_balance += amount; > public static void Main() < BankAccount ba = new BankAccount(«Mr. Bryan Walton», 11.99); ba.Credit(5.77); ba.Debit(11.22); Console.WriteLine(«Current balance is $», ba.Balance); > > >
Теперь у вас есть проект с методами, которые можно протестировать. В этой статье тестирование проводится на примере метода Debit . Метод Debit вызывается, когда денежные средства снимаются со счета.
Создание проекта модульного теста
Совет В обозревателе решений щелкните решение правой кнопкой мыши и выберите пункты Добавить>Создать проект.
Примечание в Visual Studio 2019 версии 16.9 шаблон проекта MSTest имеет формат проекта модульного теста.
Создание тестового класса
Создание тестового класса, чтобы проверить класс BankAccount . Можно использовать UnitTest1.cs, созданный в шаблоне проекта, но лучше дать файлу и классу более описательные имена.
Переименуйте файл и класс
- Чтобы переименовать файл, в обозревателе решений выберите файл UnitTest1.cs в проекте BankTests. В контекстном меню выберите команду Переименовать (или нажмите клавишу F2), а затем переименуйте файл в BankAccountTests.cs.
- Чтобы переименовать класс, поместите курсор в UnitTest1 в редакторе кода, щелкните правой кнопкой мыши и выберите команду Переименовать (или нажмите клавиши F2). Введите название BankAccountTests и нажмите клавишу ВВОД.
Файл BankAccountTests.cs теперь содержит следующий код:
using Microsoft.VisualStudio.TestTools.UnitTesting; namespace BankTests < [TestClass] public class BankAccountTests < [TestMethod] public void TestMethod1() < >> >
Добавьте оператор using
Можно также добавить оператор using в класс, чтобы тестируемый проект можно было вызывать без использования полных имен. Вверху файла класса добавьте:
using BankAccountNS;
Требования к тестовому классу
Минимальные требования к тестовому классу следующие:
- Атрибут [TestClass] является обязательным в любом классе, содержащем методы модульных тестов, которые необходимо выполнить в обозревателе тестов.
- Каждый метод теста, предназначенный для запуска в обозревателе тестов, должен иметь атрибут [TestMethod] .
Можно иметь другие классы в проекте модульного теста, которые не содержат атрибута [TestClass] , а также иметь другие методы в тестовых классах, у которых атрибут — [TestMethod] . Можно вызывать эти другие классы и методы в методах теста.
Создание первого тестового метода
В этой процедуре мы напишем методы модульного теста для проверки поведения метода Debit класса BankAccount .
Существует по крайней мере три поведения, которые требуется проверить:
- Метод создает исключение ArgumentOutOfRangeException , если сумма по дебету превышает баланс.
- Метод создает исключение ArgumentOutOfRangeException, если сумма по дебету меньше нуля.
- Если значение дебета допустимо, то метод вычитает сумму дебета из баланса счета.
Метод по умолчанию TestMethod1 можно удалять, так как он не используется в этом руководстве.
Создание метода теста
Первый тест проверяет, снимается ли со счета нужная сумма при допустимом размере кредита (со значением меньшим, чем баланс счета, и большим, чем ноль). Добавьте следующий метод в этот класс BankAccountTests :
[TestMethod] public void Debit_WithValidAmount_UpdatesBalance() < // Arrange double beginningBalance = 11.99; double debitAmount = 4.55; double expected = 7.44; BankAccount account = new BankAccount(«Mr. Bryan Walton», beginningBalance); // Act account.Debit(debitAmount); // Assert double actual = account.Balance; Assert.AreEqual(expected, actual, 0.001, «Account not debited correctly»); >
Метод очень прост: он создает новый объект BankAccount с начальным балансом, а затем снимает допустимое значение.
Он использует метод Assert.AreEqual, чтобы проверить, что конечный баланс соответствует ожидаемому. Такие методы, как Assert.AreEqual , Assert.IsTrue и другие, зачастую используются в модульном тестировании. Дополнительную концептуальную информацию о написании модульного теста см. в разделе Написание тестов.
Требования к методу теста
Метод теста должен удовлетворять следующим требованиям:
- Он декорируется атрибутом [TestMethod] .
- Он возвращает void .
- Он не должен иметь параметров.
Сборка и запуск теста
- В меню Сборка нажмите Построить решение (или нажмите клавиши CTRL + SHIFT + B).
- Откройте Обозреватель тестов, выбрав Тест>Windows>Обозреватель тестов в верхней строке меню (или нажмите клавиши CTRL + E, T).
- Выберите Запустить все, чтобы выполнить тест (или нажмите клавиши CTRL + R, V). Во время выполнения теста в верхней части окна Обозреватель тестов отображается анимированная строка состояния. По завершении тестового запуска строка состояния становится зеленой, если все методы теста успешно пройдены, или красной, если какие-либо из тестов не пройдены. В данном случае тест пройден не будет.
- Выберите этот метод в обозревателе тестов для просмотра сведений в нижней части окна.
Исправление кода и повторный запуск тестов
Результат теста содержит сообщение, описывающее возникшую ошибку. Чтобы увидеть это сообщение, может потребоваться выполнить детализацию. Для метода AreEqual выводится сообщение о том, что ожидалось и что было фактически получено. Ожидалось, что баланс уменьшится, а вместо этого он увеличился на сумму списания.
Модульный тест обнаружил ошибку: сумма списания добавляется на баланс счета, вместо того чтобы вычитаться.
Исправление ошибки
Чтобы исправить эту ошибку, в файле BankAccount.cs замените строку:
m_balance += amount;
m_balance -= amount;
Повторный запуск теста
В обозревателе тестов выберите Запустить все, чтобы запустить тест повторно (или нажмите клавиши CTRL + R, V). Красно-зеленая строка становится зеленой, чтобы указать, что тест был пройден.
Использование модульных тестов для улучшения кода
В этом разделе рассматривается, как последовательный процесс анализа, разработки модульных тестов и рефакторинга может помочь сделать рабочий код более надежным и эффективным.
Анализ проблем
Создание тестов шаг за шагом
Процесс создания теста не является чем-то сложным и доступен всем, кто хотя бы иногда садится за компьютер.
Рассмотрим подробнее как создать тест.
Способ первый
Ввод вопросов и вариантов ответов непосредственно в программе tMaker, используя встроенный текстовый редактор.
Преимущества этого способа в том, что вводить вопросы в этом случае гораздо удобнее, чем в текстовом редакторе. Кроме того, при использовании в вопросах дополнительного форматирования текста и (или) различных объектов, данный способ становится единственно возможным.
Способ второй
Ввод вопросов и вариантов ответов в текстовом редакторе и последующий их импорт из программы tMaker.
Преимущество способа в том, что у многих людей навыки работы в текстовом редакторе (таком как, например, MS Word) развиты очень сильно и им неудобно переходить на какую-либо другую программу в своей работе.
Далее перечислены шаги, которые нужно предпринять для создания теста.
Способ 1 . Ввод вопросов и вариантов ответов непосредственно в программе.
3. Ввод и настройка вопросов .
Способ 2 . Ввод вопросов и вариантов ответов в текстовом редакторе и последующий их импорт из tMaker.
1. Ввод вопросов в текстовом редакторе
2. Импорт созданного текстового файла.
Источник: sunrav.ru