Когда вы запрашиваете у AutoFixture словарь, он предоставляет непустое значение:
`` С #
var fixture = new Fixture ();
var actual = fixture.Create
Assert.NotEmpty (актуально); // Успешно
When you request a sorted list, on the other hand, the returned list is empty. This test fails its assertion:
``` C#
var fixture = new Fixture();
var actual = fixture.Create<SortedList<int, string>>();
Assert.NotEmpty(actual); // Fails
Поскольку AutoFixture уже может предоставлять непустые словари, а одна из перегрузок конструктора для SortedList<TKey, TValue>
принимает словарь, должно быть довольно легко добавить _relay_ из SortedList<TKey, TValue>
в IDictionary<TKey, TValue>
.
Реализацией может быть, например, новый ISpecimenBuilder
который обрабатывает запросы для любых SortedList<TKey, TValue>
, разрешая IDictionary<TKey, TValue>
из context
, а затем вызывая соответствующую перегрузку конструктора с возвращаемое значение.
Другой вариант реализации - имитировать то, как конкретные словари уже заполнены. См. Комбинацию DictionaryFiller
и DictionarySpecification
в классе Fixture
.
Эта проблема была вызвана вопросом о переполнении стека .
См. Также № 623 и № 624.
@ploeh Я хотел бы
@sbrockway объявляет, что вы собираетесь попробовать, должно быть достаточно, назначение не требуется: +1:
@sbrockway , @adamchester прав: обычно достаточно сделать объявление. AutoFixture - это умеренно успешный проект с открытым исходным кодом, поэтому он видит постоянный поток вкладов, но я не думаю, что когда-либо видел случай, когда несколько участников соревнуются за выполнение одной и той же функции: smile:
Другие, более популярные проекты могут действовать иначе, поэтому вы поступили правильно, спросив: +1:
Если вам в чем-то нужна помощь, спросите: smile:
Мне сложно научиться пользоваться GitHub. Приносим извинения за запрос на перенос вчера, я пытался перестроить свою вилку, и он не угадал, в каком направлении двигался запрос на перенос. Я разобрался и обновил репо.
Я застрял в том, как откатить / отменить мою последнюю фиксацию в моем репо, чтобы я мог вернуть файл, который я удалил, чтобы пойти по маршруту, который вы предложили. Если у вас есть какие-либо указания по этому поводу, это было бы полезно.
Я не знаю, как выглядит ваше репо. Хотя я мог взглянуть на вашу вилку, я не видел, как она выглядит на вашем локальном компьютере, поэтому мне сложно дать конкретный совет.
Часто с Git, если вы безнадежно заблудились, самый простой выход - начать все сначала с новой ветки. Это гарантирует, что исходная ветвь останется нетронутой. Это важно, потому что я часто слышу, что люди делают с Git, что в отчаянии они пытаются выполнить команду, которую не полностью понимают, а затем в конечном итоге удаляют свою работу - навсегда!
Лучший совет, который я могу дать относительно Git, - не торопитесь и делайте только то, что вы полностью понимаете. В тех редких случаях, когда вы хотите попробовать что-то, чего не совсем понимаете, по крайней мере, сделайте себе одолжение и создайте копию своего репозитория в другом месте. Прелесть Git в том, что он полностью основан на файлах, поэтому (временная) «резервная копия» может быть такой же простой, как копирование папки репозитория на ваш рабочий стол.
Самый полезный комментарий
@sbrockway объявляет, что вы собираетесь попробовать, должно быть достаточно, назначение не требуется: +1: