Как проверить, что метод был вызван внутри другого метода с Mockito - PullRequest
0 голосов
/ 28 февраля 2020

Я довольно новичок в Mockito, и я искал способ убедиться, что если я вызову метод filter () с правильной строкой, метод foo будет вызван один раз.

public class A
{
    private final Config _config;    

    public A(Config config) { _config = config; }

    public void filter(String str)
    {
        if(str.startsWith("a"))
        {
            if(str.contains("z"))
            {
                foo(config.getName());
            }
        }
    }

    private void foo(String bar)
    {
        (...)
    }
}

Вот мой текущий код:

@Test
public void testOne()
{
    Config config = new Config(configFile);
    A a = Mockito.spy(new A(config));
    a.filter("abcz");
    verify(a, times(1)).foo(someString);
}

1 Ответ

0 голосов
/ 28 февраля 2020

Старайтесь быть более обобщенным c во время такого теста. Если вам не нужно указывать, какой именно аргумент должен быть передан, просто используйте any():

import static org.mockito.ArgumentMatchers.any;

verify(a).foo(any(String.class));
...