WTF момент в EasyMock API ??Эта логика вообще возможна? - PullRequest
0 голосов
/ 15 декабря 2011

Сегодня я столкнулся с этим, казалось бы, забавным набором параметров ожидания в API Easymock для параметров 'и' параметров ожидания для long, short, double, boolean, ...

пример

public static long and(long first,
                   long second)

Expects a long that matches both given expectations.

Parameters:
    first - placeholder for the first expectation.
    second - placeholder for the second expectation. 
Returns:
    0.

Возможно ли это вообще?Как долго, например, может быть 1L и 2L То же самое wtf верно для boolean, short, double, int, ...

Мой ум взорван!

Ответы [ 2 ]

2 голосов
/ 15 декабря 2011

Мне кажется, что для удовлетворения общего требования к бинарным операторам, принимающим два параметра И возможность обрабатывать собственные типы, вы должны столкнуться с проверкой некоторых посторонних условий.

Итак, эти методы существуют длясделать EasyMock регулярным, вместо того, чтобы позволить вам проверить, что long может содержать два потенциально противоречивых значения одновременно.

1 голос
/ 17 декабря 2011

Мне потребовалось некоторое время, чтобы понять это, и я все еще не уверен, как и (булево, булево) должно работать, но этот фрагмент показывает использование для и (длинный, длинный)

/** */
@Test
public void andCanBeUsedToCheckForRanges(){
    class A{
        void foo(Long arg){};
    }

    A a = createMock(A.class);
    a.foo(and(gt(5L), lt(7L)));

    replay(a);
    a.foo(6L);
    verify(a);
}
...