Що таке атрибут [факт]?


85

Я впевнений, що це надзвичайно просто, але я явно не гуглюю правильно. У кількох блогах, що стосуються модульних тестів, я бачив атрибут [факт], наданий декільком методам, але я, здається, не можу зрозуміти, що це означає. Приклад:

public class SomeClass
{
    [Fact]
    public void Foo()
    {

    }

    [Fact]
    public void Bar()
    {

    }
}

1
Цікаво, що це питання вже є номером 6 у результатах Google для "FactAttribute" для мене, коли я пишу це. Хороша робота на соку Google, StackOverflow!
Кріс

Я бачу, що я зараз погуглив неправильно. Я припустив, що [факт] є частиною тестової програми візуальної студії, отже, чому я не отримав жодних значущих результатів
jhammond

13
Погуглив FactAttribute, опинився тут.
James Love

2
Факт ... боже, чому б просто не назвати це TestAttribute? Якщо людям потрібно пошукати в Google, ви знаєте, що зробили неправильний вибір імен: \
Tor Haugen

1
У документі GitHub для xUnit це пояснює атрибут Fact та спосіб його використання в прикладі "Факти - це тести, які завжди відповідають дійсності. Вони перевіряють інваріантні умови." xunit.github.io/docs/getting-started-dotnet-core.html
Умпа

Відповіді:


89

Він належить до модульного тестування xUnit.

Там сказано, що метод - це одиничний тест.


1
Дякую, я припустив, що це є частиною модульного тестування Visual Studio, отже, чому я не отримав жодних значущих результатів.
jhammond

19
Яка різниця між Фактом та Тестом ?
Лей Ян

22
Атрибут [Fact] використовується xUnit Test Framework. Атрибут [Test] використовується іншим тестовим фреймворком. Обидва оцінюють процедуру як тест.
DrKoch

Вони позначають це як "тест" загалом, або як "одиничний тест"? Це не зрозуміло з коментаря, який проголосував за 14+, і в якому говориться: "Обидва оцінюють процедуру як тест".
Трійко
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.