Первая вещь, которую я сделал бы, кладут листок бумаги или книгу по Вашим клавишам со стрелками и Вашим ins/home/end/pgup/down ключам. Это не необходимо в Vi.
Следующий я привык бы к удару ctrl + [каждый раз, когда Вам говорят поразить Escape. Это намного быстрее, и Вы не должны будете убирать руки от клавиатуры.
Затем я наблюдал бы свои скринкасты:
http://www.youtube.com/watch?v=FcpQ7koECgk
http://www.youtube.com/watch?v=c6WCm6z5msk
http://www.youtube.com/watch?v=BPDoI7gflxM
http://www.youtube.com/watch?v=J1_CfIb-3X4
Затем просто практика практики практики.
редактирование причина предотвращения клавиш со стрелками состоит в том, что они замедляют Вас. Одно из самых больших преимуществ Vim является скоростью, которую он позволяет Вам. Клавиши со стрелками также предотвращают Вас от реального охвата модальной природы, которая очень мощна при освоении.
Assert.Throws
возвращает выброшенное исключение, которое позволяет вам утверждать исключение.
var ex = Assert.Throws<Exception>(() => user.MakeUserActive());
Assert.That(ex.Message, Is.EqualTo("Actual exception message"));
Таким образом, если исключение не сгенерировано или выбрано исключение неправильного типа, первое утверждение Assert.Throws
завершится ошибкой. Однако, если выбрано исключение правильного типа, теперь вы можете утверждать фактическое исключение, которое вы сохранили в переменной.
Используя этот шаблон, вы можете утверждать другие вещи, кроме сообщения об исключении, например, в случае из ArgumentException
и производных, вы можете утверждать, что имя параметра правильное:
var ex = Assert.Throws<ArgumentNullException>(() => foo.Bar(null));
Assert.That(ex.ParamName, Is.EqualTo("bar"));
Вы также можете использовать Fluent API для выполнения этих утверждений:
Assert.That(() => foo.Bar(null),
Throws.Exception
.TypeOf<ArgumentNullException>()
.With.Property("ParamName")
.EqualTo("bar"));
Небольшой совет при утверждении сообщений об исключениях - украсить тестовый метод атрибутом SetCultureAttribute
, чтобы убедиться, что генерируемое сообщение использует ожидаемую культуру. Это вступает в игру, если вы сохраняете сообщения об исключениях в качестве ресурсов для локализации.