2012-01-29 4 views
2

Мне любопытно, есть ли нейтральный способ платформы для определения модульных тестов. Рассмотрим задачу определения некоторых модульных тестов для новой реализации набора с базами кода как в Java, так и в C#. Например, мы можем проверить, что {3, 4, 5} пересекаются {4} - {4}. Вместо того, чтобы дважды записывать этот юнит-тест (один раз в нашем проекте Java и один раз в нашем проекте C#), было бы неплохо определить тест один раз (возможно, в XML?), А затем каждый раз прочитать и выполнить этот тест автоматически. Некоторая работа должна быть выполнена на каждом языке для определения того, как набор должен быть создан и заполнен, но кажется, что нам нужно будет только настроить эту деталь, когда это кажется разумным, если выигрыш не будет дублировать n единичных тестов.Тестирование платформы нейтральной платформы?

Кто-нибудь знает язык или рамки с этой целью?

ответ

0

Я разработал что-то в строках, которые вы описываете, что позволяет вам определять свои тесты на высоком уровне, а затем генерирует исходный код тестовой проводки на C или C++.

http://www.apollo-systems.co.uk/dev/products/

Могу ли я продлить его для создания C# и JAVA зависит от спроса. Он ориентирован прежде всего на рынок встроенных систем, где предпочтительными являются языки C и C++.

Спецификация теста хранится в XML, и я определил минимальный набор операций, которые позволят вам сделать что-то полезное. Мотивация в разработке этого заключается в том, чтобы вы могли сосредоточиться на том, что вы хотите протестировать, а не на написании тестового кода.

2

Есть несколько вопросов, с потенциальной основой для таких платформ нейтрального модульного тестирования:

  • отображения между кусками C# и Java коды (как, например инструмент должен были бы знать, какие Java/C метод # или класс для тест, указанный в определенном файле конфигурации XML)
  • различия между внешними библиотеками (даже если вы можете сделать свой собственный код таким образом, чтобы перевод мог быть легко достижим, поставщики внешних библиотек могли бы не быть - и, скорее всего, это даже не волнует)
  • языки разные языки

Конечно, возможно, можно преодолеть эти проблемы с помощью довольно продвинутого и продуманного конфигурационного файла. Но тогда возникает еще один вопрос - неужели все еще модульное тестирование что мы делаем? Единичный тест строго связан с кодом, который он тестирует (написано на том же языке, что и один из первых), нет разумного способа вернуться к этому правилу. Написание «модульного теста» в XML ..? Это звучит не так.

Есть такая легкая вещь для запоминания - модульное тестирование должно быть простым и простым процессом. Подход, о котором вы просите, скорее всего, сделает его сложным. Написание тестов на одном языке является простым - в конце концов, вы также должны иметь возможность писать реализацию. Внедрение дополнительных рамок подразумевает необходимость изучения, сохранения и устранения возможных новых проблем, которые могут возникнуть.

В целом проблема с инструментами, нацеленными на разные платформы, всегда одна и та же: будут случаи, когда такой инструмент слишком общий, или ограничения платформы слишком специфичны. И тогда вам придется отказаться от языка платформы/инструмента. Таким образом, даже если это может показаться привлекательным для очень простых корпусов (например, ваш пересекающийся один), в целом я не думаю, что это стоит усилий. В любом случае, вы все равно будете делать вещи в смешанном виде.

Смежные вопросы