GithubHelp home page GithubHelp logo

st-4's Introduction

ST-4 Модульное тестирование в .NET Core с использованием MSTest (C#)

GitHub pull requests GitHub closed pull requests

Срок выполнения задания:

по 07.04.24 Relative date

Данная работа демонстрирует модульное тестирование с помощью фреймворка MSTest на платформе .NET версии 8.x

Задание №1

В рамках существующего решения (solution) ST-4 добавить проект BugPro в виде консольного приложения и поместить в файл BugPro/Program.cs код класса Bug.

using Stateless;

public class Bug {
   public enum State {Open, Assigned, Defered, Closed}
   private enum Trigger {Assign, Defer, Close}
   private StateMachine<State, Trigger> sm;

   public Bug(State state) {
      sm = new StateMachine<State, Trigger>(state);
      sm.Configure(State.Open)
            .Permit(Trigger.Assign, State.Assigned);
      sm.Configure(State.Assigned)
            .Permit(Trigger.Close, State.Closed)
            .Permit(Trigger.Defer, State.Defered)
            .Ignore(Trigger.Assign);
      sm.Configure(State.Closed)
            .Permit(Trigger.Assign, State.Assigned);
      sm.Configure(State.Defered)
            .Permit(Trigger.Assign, State.Assigned); 
   }
   public void Close() {
      sm.Fire(Trigger.Close);
      Console.WriteLine("Close");
   }
   public void Assign() {
      sm.Fire(Trigger.Assign);
      Console.WriteLine("Assign");   
   }
   public void Defer() {
      sm.Fire(Trigger.Defer);
      Console.WriteLine("Defer");   
   }   
   public State getState() {
      return sm.State;
   }
}

public class Program {
   public static void Main(string[] args) {
      var bug = new Bug(Bug.State.Open);
      bug.Assign();
      bug.Close();
      bug.Assign();
      bug.Defer();
      bug.Assign();
      Console.WriteLine(bug.getState());
   }
}

Далее, построить проект и убедиться, что консольное приложение запускается без ошибок и выводит на экран некоторую информацию.

Задание №2

Добавить в решение еще один проект BugTests, указав тип проекта - MSTest. В файл BugTests/UnitTest1.cs поместить несколько тестовых методов, тестирующих класс-автомат, описанный в BugPro/Program.cs. Количество тестов - не менее 10.

Для реализации бОльшего числа тестов, рекомендуется расширить класс Bug, добавив новые состояния и новые функции переходов.

Примечание

После создания пул-запроса убедиться, что тесты корректно запускаются.

st-4's People

Contributors

ashtanyuk avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.