Я пытаюсь придумать шаблон Резарпера для применения к последовательным утверждениям Должно. Например, у меня есть эти проверки:
field1.ShouldNotBeNull();
field2.ShouldBe(expectedField2Value);
И в этом случае его следует заменить на:
this.ShouldSatisflyAllConditions(
() => field1.ShouldNotBeNull(),
() => field2.ShouldBe(expectedField2Value));
И нет проблем, если это был единственный случай, ноДело в том, что есть много разных возможностей, которые не описаны в шаблонах, которыми я управлял до сих пор. То, что я пытаюсь сделать, это добраться до точки, где в любое время я получаю две или более последовательные проверки любого вида (ShouldBeNull, ShouldNotBeNull, ShouldContain и т. Д.), Я буду предупрежден, чтобы поместить все из них в блок ShouldSatisfyAllConditions, так какесли я оставлю это как отдельное утверждение, тесты прекратятся, как только один из них завершится неудачей, вместо того, чтобы предоставить мне список сбоев в последнем случае. Проблемы, с которыми я сталкиваюсь:
- Мне не удалось использовать любое имя поля в шаблоне. Когда я выбираю «Поиск по шаблону», я просто получаю имена этих конкретных полей, которые не применимы ко всему проекту.
РЕДАКТИРОВАТЬ: Моя ошибка. Шаблон, который я пробовал, применяется всякий раз, когда два поля с любым именем утверждаются как отличные от нуля.
Мне не удалось применить это ни к одному из утверждений Должно быть, и я должен указать это в каждом конкретном случае (например, в примере выше). Я получаю только определенные шаблоны вместо более общих. Помимо очень конкретных случаев, я не могу применить это в любое время, когда есть два или более случая. Я должен выбрать каждый шаблон, 2 строки, 3 строки и т. Д.
Я использую VS 17 Enterprise и JetBrains ReSharper Ultimate 2019.2.2. Это:
$field1$.ShouldNotBeNull();
$field2$.ShouldNotBeNull();
Заменено на это:
this.ShouldSatisfyAllConditions(
() => $pageStyleProperty$.ShouldNotBeNull(),
() => $_editorObject$.ShouldNotBeNull());