Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 31285|Відповідь: 3

[Джерело] .NET/C# використовує модульні тести Xunit

[Копіювати посилання]
Опубліковано 22.01.2019 14:58:26 | | | |
Зараз у грі. Інструменти для тестування в рамках Net-фреймворку переважно включають Nunit, вбудований MSTest і Xunit, і ця стаття коротко представить, як користуватися XUnit, зіркою, що сходить у VS.

Мінімальний час виконання, підтримуваний xunit, становить . NET 4.5.2, більшість із них вищі. Навіть якщо ви зможете створити бібліотеку класів 4.0, вона все одно працюватиме принаймні на .NET 4.5.2. Детальні посилання:https://github.com/xunit/xunit/issues/1817


Спочатку я створив новий консольний проєкт .NET 4.5.2 під назвою: itsvse-test, а остання версія xunit — 2.4.1, тож команда nuget така:

Кожен пакет ліцензований вам його власником. NuGet не несе відповідальності за сторонні пакети і не ліцензує їх. Деякі пакети можуть містити залежності, які підпадають під інші ліцензії. Натисніть на URL вихідного (вихідного) посилання пакету, щоб визначити будь-які залежності.

Пакетний менеджер консолі хост версії 4.7.0.5212

Введіть «get-help NuGet», щоб побачити всі доступні команди NuGet.

PM> Інсталяційний пакет xunit -Версія 2.4.1


Намагаються зібрати та націлитися на це». NETFramework, Version=v4.5.2" проєкту "itsvse-test" щодо пакету "xunit.2.4.1"
Зібрати інформацію про залежність займає 2,1 секунди
Спроба вирішити залежність пакету "xunit.2.4.1" з DependencyBehavior як "Найнижча"
Розбор інформації про залежності займає 0 мс
Операція розбору для встановлення пакету "xunit.2.4.1"
Вирішено операцію встановлення пакету "xunit.2.4.1"
Отримати пакет "xunit 2.4.1" з "cnblogs"
Отримати пакет "xunit.abstractions 2.0.3" з "cnblogs"
Отримати пакет "xunit.analyzers 0.10.0" з "cnblogs"
Отримати пакет "xunit.assert 2.4.1" з "cnblogs"
Отримати пакет "xunit.core 2.4.1" з "cnblogs"
Отримати пакет "xunit.extensibility.core 2.4.1" з "cnblogs"
Отримати пакет "xunit.extensibility.execution 2.4.1" з "cnblogs"
  ІДИhttps://api.nuget.org/v3-flatcon ... 1/xunit.2.4.1.nupkg
  ІДИhttps://api.nuget.org/v3-flatcon ... actions.2.0.3.nupkg
  ІДИhttps://api.nuget.org/v3-flatcon ... it.core.2.4.1.nupkg
  ІДИhttps://api.nuget.org/v3-flatcon ... .assert.2.4.1.nupkg
  ІДИhttps://api.nuget.org/v3-flatcon ... ty.core.2.4.1.nupkg
  ІДИhttps://api.nuget.org/v3-flatcon ... ecution.2.4.1.nupkg
  ІДИhttps://api.nuget.org/v3-flatcon ... lyzers.0.10.0.nupkg
  ГАРАЗДhttps://api.nuget.org/v3-flatcon ... actions.2.0.3.nupkg116 мс
  ГАРАЗДhttps://api.nuget.org/v3-flatcon ... 1/xunit.2.4.1.nupkg117 мс
Встановлення xunit.abstractions 2.0.3.
Встановлюю xunit 2.4.1.
  ГАРАЗДhttps://api.nuget.org/v3-flatcon ... it.core.2.4.1.nupkg151 мс
Встановлюю xunit.core 2.4.1.
  ГАРАЗДhttps://api.nuget.org/v3-flatcon ... .assert.2.4.1.nupkg167 мс
Встановлення xunit.assert 2.4.1.
  ГАРАЗДhttps://api.nuget.org/v3-flatcon ... ty.core.2.4.1.nupkg221 мс
Встановлення xunit.extensibility.core 2.4.1.
  ГАРАЗДhttps://api.nuget.org/v3-flatcon ... lyzers.0.10.0.nupkg200 мс
Встановлення xunit.analyzers 0.10.0.
  ГАРАЗДhttps://api.nuget.org/v3-flatcon ... ecution.2.4.1.nupkg306 мс
Встановлення xunit.extensibility.execution 2.4.1.
Додавання пакету "xunit.abstractions.2.0.3" до папки "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages"
Пакет "xunit.abstractions.2.0.3" додано до папки "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages"
Додано пакет "xunit.abstractions.2.0.3" до "packages.config"
Успішно встановив "xunit.abstractions 2.0.3" на itsvse-test
Додавання пакету лише набору інструментів "xunit.analyzers.0.10.0" до "itsvse-test"
Додавання пакету "xunit.analyzers.0.10.0" до папки "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages"
Пакет "xunit.analyzers.0.10.0" додано до папки "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages"
Додано пакет "xunit.analyzers.0.10.0" до "packages.config"
Файл скрипту "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages\xunit.analyzers.0.10.0\tools\install.ps1"
"xunit.analyzers 0.10.0" успішно встановлено для тестування itsvse
Додавання пакету "xunit.assert.2.4.1" до папки "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages"
Пакет "xunit.assert.2.4.1" додано до папки "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages"
Додано пакет "xunit.assert.2.4.1" до "packages.config"
"xunit.assert 2.4.1" успішно встановлено для тестування itsvse.
Додавання пакету "xunit.extensibility.core.2.4.1" до папки "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages"
Пакет "xunit.extensibility.core.2.4.1" додано до папки "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages"
Додано пакет "xunit.extensibility.core.2.4.1" до "packages.config"
"xunit.extensibility.core 2.4.1" успішно встановлено для тестування itsvse.
Додавання пакету "xunit.extensibility.execution.2.4.1" до папки "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages"
Пакет "xunit.extensibility.execution.2.4.1" додано до папки "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages"
Додано пакет "xunit.extensibility.execution.2.4.1" до "packages.config"
"xunit.extensibility.execution 2.4.1" успішно встановлено для itsvse-test
Додавання пакету "xunit.core.2.4.1" до папки "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages"
Пакет "xunit.core.2.4.1" додано до папки "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages"
Додано пакет "xunit.core.2.4.1" до "packages.config"
"xunit.core 2.4.1" успішно встановлено для тестування itsvse
Додано пакет "xunit.2.4.1" з лише залежностями для проєкції "itsvse-test".
Пакет "xunit.2.4.1" додається до папки "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages"
Пакет "xunit.2.4.1" додано до папки "C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages"
Пакет "xunit.2.4.1" додано до "packages.config"
"xunit 2.4.1" успішно встановлено для тестування itsvse.
На виконання Нюгет знадобилося 5,51 секунди
Час: 00:00:07.7781544
PM>
Встановіть пакети плагінів: xunit.runner.console (опущено в цій статті) та xunit.runner.visualstudio

де xUnit — це фреймворк,А xunit.runner.visualstudio — це пакет плагінів VS, щоб ми могли легко налагоджувати у VS.Встановлення xunit.runner.console також можна налагодити в CMDАле якщо тільки це підтримуватиметься, я вважаю, що мало хто буде користуватися цим фреймворком, адже спосіб набору команд суттєво знижує оцінку Visual Studio, тому я не буду тут це пояснювати.

Тут ми встановлюємо лише пакет плагіна xunit.runner.visualstudio, клацаємо правою кнопкою миші на проєкт у Solution Explorer і вибираємо Manage NuGet Packages. Знайдіть (і встановите) пакет під назвою xunit.runner.visualstudio:



Переконайтеся, що тестовий браузер видимий (перейдіть у вікно Test > > Test Explorer). Кожного разу, коли проєкт створюється, учасник виявляє модульні тести в проєкті. Після певного періоду дослідження ви повинні побачити список виявлених тестів:



Відредагуйте файл програми та змініть наступний код:

Натисніть на посилання у вікні Run All, і ви повинні побачити оновлення результату у вікні Test Explorer під час запуску тесту:



Ви можете натиснути на невдалий тест, щоб переглянути повідомлення про невдачу та трасування стеку. Ви можете натиснути на лінію трасування стеку, щоб перейти безпосередньо до невдалого рядка коду.

(Кінець)





Попередній:Будильник «Спи твоя сестра» v4.6.1 Професійна платна преміум-китайська версія
Наступний:Сьогоднішні нотатки з вивчення C#
 Орендодавець| Опубліковано 22.01.2019 15:19:24 |
Xunit не потрібно тегувати тестові класи

xUnit підтримує властивості як [Факт], так і [Теорія]. Як видно з коду, [Fact] схожий на власний код виклику, який ми пишемо, тоді як [Theory] з InlineData може тестувати кілька наборів параметрів безпосередньо в одному методі.

 Орендодавець| Опубліковано 22.01.2019 15:31:55 |
Тестування аномалій

Xunit не позначає виключення через Attributes, а безпосередньо використовує функцію assertion. Кидає для перевірки винятків.

    публічний клас тестКлас 1
    {
        [Факт]
        Публічний void testException()
        {
            <InvalidOperationException>Assert.Throws(() = > operation());
        }

        Операція порожнечі()
        {
            викинути новий InvalidOperationException();
        }
    }



Змініть назву тестового випадку:

     [Fact(DisplayName = "Max Function Test")]



Пропустити тестові випадки:

     [факт(пропустити="рефакторинг незавершений")]



Групування:

     [Риса ("Група", "Категорія")]
 Орендодавець| Опубліковано 22.01.2019 15:37:28 |
У багатьох випадках ми не хочемо, щоб юніт-тести впливали на вміст бази даних, і іноді наші юніт-тести дуже повільні через вплив бази даних, тому ми часто хочемо ізолювати збереження і не зберігаємо дані під час модульних тестів. Такий тип ізоляції ми зазвичай використовуємо абстракції, тобто використовуємо інтерфейси або абстрактні класи для ізоляції шару збереження, а потім застосовуємо макети для моделювання відповідних інтерфейсів або абстрактні класи для завершення відповідних класів збереження. MoQ — один із таких Mock-фреймворків, MoQ використовує C# 3.0, який простіший у використанні, ніж NMock, і це сильно типізований спосіб, а вихідний код і dll доступніВхід за гіперпосиланням видно.Завантажити. Останній реліз MoQ — це версія 3.1, а 4.0 ще перебуває в бета-версії.
https://www.cnblogs.com/catcher1994/p/5498530.html
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com