Чертить линию в Winforms

Создайте макет с помощью Mockito (в контексте «операторов Java»):

${:importStatic('org.mockito.Mockito.mock')}${Type} ${mockName} = mock(${Type}.class);

И в «Членах типа Java»:

${:import(org.mockito.Mock)}@Mock
${Type} ${mockName};

Макет недействительного метода для выброса исключение:

${:import(org.mockito.invocation.InvocationOnMock,org.mockito.stubbing.Answer)}
doThrow(${RuntimeException}.class).when(${mock:localVar}).${mockedMethod}(${args});

Макет недействительного метода, чтобы сделать что-то:

${:import(org.mockito.invocation.InvocationOnMock,org.mockito.stubbing.Answer)}doAnswer(new Answer<Object>() {
public Object answer(InvocationOnMock invocation) throws Throwable {
    Object arg1 = invocation.getArguments()[0];
    return null;
}
}).when(${mock:localVar}).${mockedMethod}(${args});

Проверьте, что смоделированный метод вызывается ровно один раз:

${:importStatic(org.mockito.Mockito.verify,org.mockito.Mockito.times)}
verify(${mock:localVar}, times(1)).${mockMethod}(${args});

Убедитесь, что смоделированный метод никогда не вызывается :

${:importStatic(org.mockito.Mockito.verify,org.mockito.Mockito.never)}verify(${mock:localVar}, never()).${mockMethod}(${args});

Новый связанный список с использованием Google Guava (и аналогичный для hashset и hashmap):

${import:import(java.util.List,com.google.common.collect.Lists)}List<${T}> ${newName} = Lists.newLinkedList();

Также я использую огромный шаблон, который генерирует класс Test. Вот сокращенный фрагмент, который каждый желающий должен настроить:

package ${enclosing_package};

import org.junit.*;
import static org.junit.Assert.*;
import static org.hamcrest.Matchers.*;
import static org.mockito.Matchers.*;
import static org.mockito.Mockito.*;
import org.mockito.Mockito;
import org.slf4j.Logger;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import org.junit.runner.RunWith;

// TODO autogenerated test stub
@RunWith(MockitoJUnitRunner.class)
public class ${primary_type_name} {

    @InjectMocks
    protected ${testedType} ${testedInstance};
    ${cursor}

    @Mock
    protected Logger logger;

    @Before
    public void setup() throws Exception {
    }

    @Test
    public void shouldXXX() throws Exception {
        // given

        // when
        // TODO autogenerated method stub

        // then
        fail("Not implemented.");
    }
}
// Here goes mockito+junit cheetsheet
6
задан waka 19 September 2014 в 11:08
поделиться

3 ответа

Подключить обработчик событий для события Paint в GroupBox и вместо этого вызовите DrawLShapeLine из этого обработчика событий. Затем следует использовать объект Graphics , предоставленный аргументами события in:

private void groupBox1_Paint(object sender, PaintEventArgs e)
{
    DrawLShapeLine(e.Graphics, 10, 10, 20, 40);
}

Ваш код будет пытаться рисовать в GroupBox , когда форма требует рисования. Групповое поле можно раскрасить в любом другом случае, в результате чего нарисованная линия исчезнет.

4
ответ дан 8 December 2019 в 02:46
поделиться

Если вы хотите использовать waitLoop в «если», вы можете изменить «выход» на «возврат», так что остальная часть сценария может обработать ситуацию с ошибкой (нет даже сообщения пользователю о том, что не удалось, прежде чем сценарий умрет в противном случае).

Другая проблема заключается в использовании «$ test» для удержания команды означает, что вы не t получить расширение оболочки при фактическом выполнении, просто оценивая. Поэтому, если вы скажете test = "grep \" foo \ "\" bar baz \ "", вместо того, чтобы искать трехбуквенную строку foo в файле с семисимвольной строкой имени bar baz, он будет искать строку из пяти символов "foo" в девяти символьном файле "bar baz".

Так что вы можете либо решить, что вам не нужна магия оболочки,

24
ответ дан 8 December 2019 в 02:46
поделиться

Я не уверен, что происходит что-то еще, но вы должны нарисовать линию на событии Paint GroupBox , а не на форме ]

0
ответ дан 8 December 2019 в 02:46
поделиться
Другие вопросы по тегам:

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