IronPython для поблочного тестирования по C#

Вопрос: У нас есть операции Get (id), Put (id, модель), Delete (id), Add (id, модель) в интерфейсе сервиса.

blockquote>

O (1) в TypeScript Map: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map

13
задан Kozyarchuk 6 December 2008 в 22:30
поделиться

8 ответов

Ответ желания хорош - Вы представляете новое требование для разработчиков.

Кроме того, какова поддержка инструмента как? Я не попробовал ни одного из этого сам, но я хотел бы знать:

  • Как легкий это должно отладить в провальные модульные тесты?
  • Как легкий это должно выполнить модульные тесты от IDE? (например, с ReSharper)
  • Как легкий это должно автоматизировать модульные тесты с непрерывного сервера сборки?

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

Существуют другие опции, а также IronPython, конечно - Шиканье, являющееся довольно очевидным выбором.

4
ответ дан 1 December 2019 в 23:16
поделиться

Python превосходен для кода UnitTesting C#. Наше приложение составляет 75% в Python и 25%-м C# (Python. Сеть), и наши модульные тесты 100% Python.

Я нахожу, что намного легче использовать тупики и насмешки в Python, который является, вероятно, одним из самых критических компонентов, которые позволяют записать эффективный unittests.

6
ответ дан 1 December 2019 в 23:16
поделиться

На самом деле тестирование является прекрасной возможностью попытаться интегрировать новый язык. Языки как Python сияют особенно хорошо в тестировании, и это - проект с низким риском попробовать - худший случай не слишком тяжел вообще.

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

То, что говорит Jon, верно, хотя - уровень инструментов для Python в целом и IronPython, в частности, нигде не около уровня C#. То, насколько это влияет на Вас, является чем-то, что Вы узнаете в своем пилоте.

3
ответ дан 1 December 2019 в 23:16
поделиться

Причем Python является намного меньшим количеством подробного языка, чем C# мог бы на самом деле понизить барьер для записи модульных тестов, так как существует все еще много разработчиков, которые являются стойкими к выполнению автоматизированного поблочного тестирования в целом. Представление и наличие их используют язык как IronPython, который обычно склонен занимать меньше времени для написания эквивалентного кода в C#, мог бы на самом деле поощрить больше модульных тестов быть записанным, который всегда является хорошей вещью.

Плюс, при помощи IronPython для Вашего тестового кода, Вы могли бы закончить с меньшим количеством строк кода (LOC) для Вашего проекта в целом подразумевать, что Ваши модульные тесты могли бы быть более вероятны сохраняться в конечном счете по сравнению с тем, чтобы быть проигнорированным и/или отброшенными.

3
ответ дан 1 December 2019 в 23:16
поделиться

Я должен пойти с Will и Jon..

Я предпочел бы, чтобы мои тесты были на том же языке как код, который я тестирую; это вызывает меньше познавательных контекстных переключений. Но возможно я являюсь просто не так мысленно гибким, как я однажды был.

  • Jon
0
ответ дан 1 December 2019 в 23:16
поделиться

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

2
ответ дан 1 December 2019 в 23:16
поделиться

Очень интересный.

Что произошло бы, если Вы пишете весь свой код с IronPython (не только модульные тесты)? Вы закончили бы приблизительно с в 10 раз меньшим количеством кода?

Возможно, я должен изучить IronPython также.

0
ответ дан 1 December 2019 в 23:16
поделиться

Недавно я переоценил свое отношение к тестированию после обнаружения параметризованного тестирования в mbUnit и NUnit . Раньше я рекомендовал Python unittest как способ автоматизации любого возможного тестирования из-за краткости и простоты тестирования.

Параметризованные тесты позволяют настраивать тестовые инструменты с помощью ряда параметров данных, и, таким образом, ваши тесты C # могут оказаться даже более краткими, чем тесты Python.

[TestCase(12, 3, 4)]
[TestCase(12, 2, 6)]
[TestCase(12, 4, 3)]
[TestCase(12, 0, 0, ExpectedException = typeof(System.DivideByZeroException),
      TestName = “DivisionByZeroThrowsExceptionType”)]
[TestCase(12, 0, 0, ExpectedExceptionName = “System.DivideByZeroException”,
      TestName = “DivisionByZeroThrowsNamedException”)]
public void IntegerDivisionWithResultPassedToTest(int n, int d, int q)
{
      Assert.AreEqual(q, n / d);
}
1
ответ дан 1 December 2019 в 23:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: