Mockito не возвращает мою базу данных вызовов экземпляра значения

class MetaItetaror(type):
    def __iter__(cls):
        return iter(
            filter(
                lambda k: not k[0].startswith('__'),
                cls.__dict__.iteritems()
            )
        )


class Klass:
    __metaclass__ = MetaItetaror

    iterable_attr_names = {'x', 'y', 'z'}
    x = 5
    y = 6
    z = 7


for v in Klass:
    print v
1
задан gaetan0221 18 March 2019 в 16:49
поделиться

2 ответа

Не уверен, что я полностью слежу за вашим вопросом или нет. Но для проверки статических методов вы можете использовать PowerMockito. Это правильный способ сделать это.

Вы можете увидеть примеры здесь .

Также см. Один пример класса I, созданный ниже

@RunWith(PowerMockRunner.class)
@PrepareForTest(DriverManager.class)
public class Mocker {

    @Test
    public void shouldVerifyParameters() throws Exception {

        //given
        PowerMockito.mockStatic(DriverManager.class);
        BDDMockito.given(DriverManager.getConnection(...)).willReturn(...);

        //when
        sut.execute(); // System Under Test (sut)

        //then
        PowerMockito.verifyStatic();
        DriverManager.getConnection(...);

    }

Дополнительная информация

Почему Mockito не высмеивает статические методы?

0
ответ дан Kunal Vohra 18 March 2019 в 16:49
поделиться

Вот простой юнит-тест для вашего класса.

import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mockito;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;

import javax.cache.Cache;
import java.lang.reflect.Field;

@RunWith(PowerMockRunner.class)
@PrepareForTest({SomeClass.class})
public class SomeClassTest {

    @Before
    public void setup() throws IllegalAccessException {
        Cache<String, Integer> cache = Mockito.mock(Cache.class);
        Mockito.when(cache.get("Language1")).thenReturn(1);

        Field field = PowerMockito.field(SomeClass.class, "cache");
        field.set(SomeClass.class, cache);
    }

    @Test
    public void should_return_1_when_Language1_is_the_input() throws Exception {
        Integer expectedResult = 1;
        Assert.assertEquals(expectedResult, SomeClass.getLanguageId("Language1"));
    }

    @Test
    public void should_return_null_when_input_is_null() throws Exception {
        Assert.assertNull(SomeClass.getLanguageId(null));
    }

    @Test (expected = Exception.class)
    public void should_throw_exception_when_unknown_language_is_input() throws Exception {
        SomeClass.getLanguageId("UnknownLanguage");
    }
}
0
ответ дан LeoN 18 March 2019 в 16:49
поделиться
Другие вопросы по тегам:

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