AssertWasCalled в насмешках носорога

В первую очередь, itertools модуль невероятно полезен для всех видов случаев, в которых итератор был бы полезен, но здесь является всем, что необходимо создать итератор в Python:

урожай

, который не прохладен? Урожай может использоваться для замены нормального возврат в функции. Это возвращает объект все равно, но вместо того, чтобы уничтожить состояние и выход, это сохраняет состояние для того, когда Вы хотите выполнить следующее повторение. Вот пример его в действии, которое вытягивают непосредственно от список функции itertools :

def count(n=0):
    while True:
        yield n
        n += 1

, Как указано в описании функций (это количество () функция от itertools модуля...), это производит итератор, который возвращает последовательные целые числа, запускающиеся с n.

выражения Генератора являются целой другой кучей проблем (потрясающие черви!). Они могут использоваться вместо Понимание Списка для сохранения памяти (понимания списка создают список в памяти, которая уничтожается после использования, если не присвоенный переменной, но выражениям генератора может создать Объект генератора..., который является необычным способом сказать Итератор). Вот пример определения выражения генератора:

gen = (n for n in xrange(0,11))

Это очень похоже на наше определение итератора выше кроме полного спектра, предопределяется, чтобы быть между 0 и 10.

я просто нашел xrange () (удивил, я не видел его прежде...), и добавил его к вышеупомянутому примеру. xrange () является повторяемой версией [1 118] диапазон () , который имеет преимущество не предварительного создания списка. Было бы очень полезно, если бы Вы имели гигантский корпус данных для итерации и только имели такую память для выполнения в нем.

7
задан captncraig 20 November 2015 в 15:39
поделиться

2 ответа

Кусок пирога:

yourstub.AssertWasCalled(
             x => x.DoSomething(
                Arg<string>.Is.Equal("value1"), 
                Arg<someObjectType>.Is.Equal(value2), 
                Arg<someOtherObjectType>.Is.Anything,   <======== NOTE THIS!
                Arg<someOtherOtherObjectType>.Is.Equal(value3)
             )
);
19
ответ дан 6 December 2019 в 07:52
поделиться

Посмотрите документацию на предмет ограничений .

Я подозреваю, что вы хотите:

Expect.Call(object.DoSomething(null, null, null, null)
      .IgnoreArguments() // Ignore those nulls
      .Constraints(Is.Equal("value1"),
                   Property.Value("PropertyA", "value2"),
                   Is.Anything(),
                   Is.Anything())
      .Return(whateverItShouldReturn);
4
ответ дан 6 December 2019 в 07:52
поделиться
Другие вопросы по тегам:

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