Преобразование имен модульных тестов C # в английский - PullRequest
3 голосов
/ 12 марта 2010

У меня есть целая куча модульных тестов, написанных на MbUnit, и я хотел бы генерировать простые английские предложения из имен тестов. Концепция вводится здесь:

http://dannorth.net/introducing-bdd

Это из статьи:

public class CustomerLookupTest extends TestCase {
    testFindsCustomerById() {
        ...
    }
    testFailsForDuplicateCustomers() {
        ...
    }
    ...
}

рендерит что-то вроде этого:

CustomerLookup
- finds customer by id
- fails for duplicate customers
- ...

К сожалению, инструмент, указанный в приведенной выше статье (testdox), основан на Java. Есть ли один для .NET?

Звучит так, что это было бы довольно просто написать, но у меня просто нет пропускной способности и я хочу использовать что-то уже написанное.

РЕДАКТИРОВАТЬ: Просто чтобы прояснить вопрос. Я смотрю на что-то, что может быстро пройти через существующие тесты и преобразовать имена функций CamelCase в предложения. Похоже, идеальная работа для какого-то плагина Gallio.

Пока что я как-то нашел SpecUnit , и Джей предложил BDDDoc. Обе они представляют собой рамки проверки поведения, которые потребуют значительного изменения существующих тестов. Наша команда приняла решение использовать SpecFlow в качестве основного фреймворка BDD, и я пытался добиться того, чтобы создать отчет о существующих тестах, чтобы увидеть, насколько он подходит для подхода BDD.

Ответы [ 5 ]

3 голосов
/ 01 сентября 2010

Существует TestDox для .NET Кажется, довольно недавно (2010).

2 голосов
/ 03 июля 2010

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

Вот мой пост с ссылкой на скачивание: http://gasparnagy.blogspot.com/2009/10/devcamp09-behavior-driven-development.html

1 голос
/ 12 марта 2010

Взгляните на developwithpassion.bdd и bdddoc, разработанные JP Boodhoo.

Его оригинальный пост в блоге находится здесь: http://blog.jpboodhoo.com/BDDDoc.aspx

Вы можете найти код на github здесь: http://github.com/developwithpassion/developwithpassion.bdd

Я использую его среду тестирования, и BDDDoc генерирует простые отчеты HTML на английском языке, которые даже показывают, пройдены ли тесты, связываясь с отчетами mbUnit и Gallio.

Формат, тем не менее, заключается в том, что каждый прибор имеет атрибут Concern, чтобы bdddoc мог подобрать и сгруппировать спецификации.

Мои приборы названы как public class When_the_sound_system_is_off..., а мои утверждения являются делегатами типа it (из каркаса), поэтому они читают it should_not_be_spinning_a_compact_disc..., it should_emit_no_sound... и т. Д.

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

0 голосов
/ 13 июня 2014

Этот тестовый C # фреймворк также отлично справляется с преобразованием метода в английский

UBADDAS - Поведение пользователей и истории, основанные на домене

найдено здесь - http://kernowcode.github.io/UBADDAS/

Преобразует это ...

[Test]
public void IWantToRegisterANewUser()
{
  ICustomer customer = new Customer();

  SoThat(MyBusinessValue.IncreaseCustomerBase)
    .As(new User())
    .Given(customer.Register)
    .When(customer.Confirm_Registration)
    .Then(customer.Login);
}

к этому ...

I want to register a new user
  So that Increase customer base
       As user
    Given Register customer
     When Confirm customer registration
     Then Login customer
0 голосов
/ 23 апреля 2010

StoryQ имеет неплохой рабочий процесс для преобразования существующих модульных тестов в стиль BDD - я знаю, что это не отвечает непосредственно на ваш вопрос, но, возможно, стоит проверить ...

...