NSubstitute метод, вызванный несколько раз с определенной последовательностью аргументов? - PullRequest
1 голос
/ 20 сентября 2019

Я хочу проверить, что конкретный метод вызывается N раз, сначала с помощью аргумента x1, затем x2, затем x3 и т. Д. И, наконец, с аргументом arg xN.Я знаю, что это можно сделать так:

Received.InOrder(() => {
    subst.MyMethod(x1);
    subst.MyMethod(x2);
    subst.MyMethod(x3);
    // ...
    subst.MyMethod(xN);
});

Но можно ли это сделать каким-то образом, просто перечислив последовательность аргументов?

Примерно так (концептуально):

int[] args = {x1, x2, x3, /*...*/ xN};
subst.Received(N).MyMethod(Arg.Is(args));

Вот реализация с InOrder, но я считаю это обходным путем:

int[] args = {x1, x2, x3, /*...*/ xN};
Received.InOrder(() => {
    foreach (int i in args)
        subst.MyMethod(i);
});

1 Ответ

1 голос
/ 21 сентября 2019

С комментарий выше:

У API NSubstitute нет способа сделать это.Для меня метод foreach самый ясный;это показывает, что именно ожидается для успеха теста.Вы могли бы написать метод, чтобы упаковать эту логику, если вам это нужно часто, но, хотя это может сделать его немного более кратким, я не думаю, что это сделает его более понятным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...