Исключение нулевого указателя генерируется, когда приложение пытается использовать null в случае, когда требуется объект. К ним относятся:
null
. null
. null
, как если бы это был массив. null
, как если бы это был массив. null
как будто это было значение Throwable. Приложения должны бросать экземпляры этого класса, чтобы указать на другие незаконные использования объекта null
.
Ссылка: http://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html
Это выполнимо - по крайней мере, в теории. То, что я сделал бы, использовать что-то как csparser для парсинга модульного теста (Вы не можете скомпилировать его, к сожалению), и затем возьмите его оттуда. Единственная проблема, которую я вижу, состоит в том, что то, что Вы делаете, неправильно с точки зрения методологии - имеет больше смысла генерировать модульные тесты от классов объекта (действительно, Visual Studio делает точно это), чем выполнение его наоборот.
Если бы Вы планируете записать свою собственную реализацию, я определенно предложил бы, чтобы Вы смотрели на NVelocity (C#) или Скорость (Java) движки шаблонов.
я использовал их в генераторе кода прежде и нашел, что они делают задание намного легче.
Его удивительное, как никто действительно ничего не дал к тому, что Вы спрашивали.
я не знаю ответ, но я дам свои мысли о нем.
, Если бы я должен был попытаться записать что-то вроде этого сам, что я, вероятно, занялся бы resharper плагином. Причина я говорю это, состоит в том, потому что, поскольку Вы заявили, resharper может сделать это, но на отдельных шагах. Таким образом, я записал бы что-то, что пошло линию за линией и применило соответствующие resharper методы создания, объединенные в цепочку вместе.
Теперь ни в коем случае не делают я даже знаю, как сделать это, поскольку я ничего никогда не создавал для resharper, но именно это я попытался бы сделать. Это имеет логический смысл, что это могло быть сделано.
И если Вы действительно описываете некоторый код, отправьте его, поскольку я мог найти это полезным также, способность генерировать весь скелет за один шаг. Очень полезный.
Мне нравится CodeRush от DevExpress. У них есть огромный настраиваемый механизм шаблонной обработки. И лучшими для меня их не являются никакие Диалоговые окна. У них также есть функциональность для создания методов и интерфейсов и классов от интерфейса, который не существует.
Visual Studio поставлется с некоторыми функциями, которые могут быть полезными для Вас здесь:
Генерируют Тупик Метода . Когда Вы пишете вызов в метод, который не существует, Вы получите немного умного тега на имени метода, которое можно использовать для генерации тупика метода на основе параметров, Вы являетесь передающими.
, Если Вы - человек клавиатуры (я), затем прямо после ввода близкой круглой скобки, можно сделать:
умный тег только появляется, если IDE думает, что нет метода, который соответствует. Если Вы хотите генерировать, когда умный тег не, можно перейти в [1 119] Редактирование->, Intellisense-> Генерируют Тупик Метода .
Отрывки . Маленькие шаблоны кода, который помогает генерировать биты общего кода. Некоторые просты (попытка "если [ВКЛАДКА] [ВКЛАДКА]"). Некоторые сложны ('переключатель' генерирует случаи для перечисления). Можно также записать собственное. Для Вашего случая попробуйте "класс" и "опору".
Видят также" , Как изменить Метод “Generate Stub” для броска NotImplementedException в VS? " для информационных отрывков в контексте GMS.
автоопоры . Помните, что свойства могут быть намного более простыми:
public string Name { get; set; }
создают класс . В Проводнике Решения, RClick на названии проекта или подпапке, выбор Добавляет-> Класс . Введите имя своего нового класса. Хит ВХОДИТ . Вы получите объявление класса в правильном пространстве имен, и т.д.
интерфейс Implement . Когда Вы захотите, чтобы класс реализовал интерфейс, запишите часть имени интерфейса, активируйте умный тег и выберите любую опцию генерировать тупики для интерфейсных участников.
Это не вполне 100%-е автоматическое решение, которое Вы ищете, но я думаю, что это - хорошее смягчение.
Я нахожу, что каждый раз, когда мне нужен инструмент генерации кода как это, я - вероятно, написание кода, которое могло быть сделано универсальным, таким образом, я только должен записать это однажды. В Вашем примере те методы считывания и методы set, кажется, не добавляют значения к коду - на самом деле, это действительно просто утверждает, что механизм метода считывания/метода set в C# работает.
я воздержался бы от записи (или даже использование) такой инструмент прежде, чем понять, каковы мотивации для записи этих видов тестов.
BTW, Вы могли бы хотеть взглянуть на NBehave?
Я использую Насмешки Носорога для этого, когда мне просто нужен простой тупик.
Попробуйте изучить Pex, проект Microsoft по модульному тестированию, который все еще исследуется
research.microsoft.com/en-us/projects/Pex/