Я новичок в адупе.
Я установил 2-узловой кластер.
Параллельное выполнение 2 заданий в hadoop.
При отправке заданий они выполняются один за другим в порядке FIFO. Я должен параллельно выполнять задания. Как этого добиться.
Спасибо MRK
-121--1118244-
Я пытаюсь использовать Powermock и Mockito, чтобы издеваться над статическим методом void, чтобы создать исключение, как показано ниже. Но я встретил проблему. Если я не сделаю два вызова Adder.add () с одним и тем же аргументом, издевательство над IOException
не будет выброшено.
BTW, я добавил @ RunWith (PowerMockRunner.class)
и @ PrepateForTest (Adder.class)
к классу единичного теста.
class Adder{
public static void add(int i) throws IOException{
return;
}
}
@Test
public void testAdder() throws IOException{
PowerMockito.mockStatic(Adder.class);
PowerMockito.doThrow(new IOException()).when(Adder.class);
Adder.add(12);
try {
Adder.add(11);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// assert things
}
Заранее спасибо.:)
Ответ следующий.
Проконсультировавшись здесь http://code.google.com/p/powermock/issues/detail?id=278 , фактически Adder.add (12) выше является частью настройки макетного статического метода. Это означает, что при вызове Adder.add () с аргументом 12 инициируется IOException. Это трудно понять, верно?:) Так что это должно быть написано, как ниже.
PowerMockito.mockStatic(Adder.class);
PowerMockito.doThrow(new IOException()).when(Adder.class);
Adder.add(anyInt());
Ответ приведен ниже.
После консультации здесь http://code.google.com/p/powermock/issues/detail?id=278 , фактически Adder.add (12) выше является частью настройки ложной статики метод. Это означает, что при вызове Adder.add () с аргументом 12, IOException будет выброшено. Это трудно понять, верно? :) Так и должно быть написано ниже.
PowerMockito.mockStatic(Adder.class);
PowerMockito.doThrow(new IOException()).when(Adder.class);
Adder.add(anyInt());
РЕДАКТИРОВАТЬ:
Ссылка не работает, попробуйте Интернет-архив один вместо.
Вы забыли перевести PowerMock в режим воспроизведения?
Как использовать статические методы.
По вашей ссылке ...
Как проверить поведение Проверка статического метода выполняется в два этапа. Сначала вызовите PowerMockito.verifyStatic()
, чтобы начать проверку поведения, и вызовите статический метод, который вы хотите проверить. Например,
PowerMockito.verifyStatic();
Static.firstStaticMethod(param);
Важное замечание: Вам необходимо вызывать verifyStatic()
для подтверждения метода.