Поскольку verifyNoMoreInteractions принимают массив объектов, мы должны найти способ получить все созданные макеты.
Вы можете создать этот класс
public class MocksCollector {
private final List
и затем использовать его в своем тесте:
public class ATest {
private final MocksCollector mocksCollector = new MocksCollector();
@Test
public void test() throws Exception {
A a1 = mock(A.class);
A a2 = mock(A.class);
A a3 = mock(A.class);
assertEquals("wrong amount of mocks", 3, mocksCollector.getMocks().length);
verifyNoMoreInteractions(mocksCollector.getMocks());
a3.doSomething();
verifyNoMoreInteractions(mocksCollector.getMocks()); // fail
}
}
или с аннотациями:
@RunWith(MockitoJUnitRunner.class)
public class A2Test {
private final MocksCollector mocksCollector = new MocksCollector();
@Mock
private A a1;
@Mock
private A a2;
@Mock
private A a3;
@Test
public void test() throws Exception {
assertEquals("wrong amount of mocks", 3, mocksCollector.getMocks().length);
verifyNoMoreInteractions(mocksCollector.getMocks());
a2.doSomething();
verifyNoMoreInteractions(mocksCollector.getMocks()); // fail
}
}
Он работает, но это добавляет зависимость от внутреннего mockito.
Что ж, вы, вероятно, захотите прочитать о загрузчиках .Net.
http://msdn.microsoft.com/en-us/magazine/cc163899.aspx
Visual Studio позволяет создавать проекты установки, в которых вы можете указать, что фреймворк является предварительным условием.
Одно из незначительных неудобств, связанных с загрузкой Microsoft, заключается в том, что вам нужно поставлять EXE вместе с MSI (EXE позаботится о загрузке). Это может быть для вас препятствием, а может и не быть. Загрузчик бесплатно включен в Windows SDK.
Более сложные / дорогостоящие инсталляционные фреймворки, такие как Wise или Installshield, позаботятся об этом за вас (и позволят вам упаковать все в один EXE).
Если вы пойдете по пути WiX: прочтите этот вопрос .
Возможно, это не самый простой в использовании инструмент, но WIX сделает все, что вам нужно. Это открытый исходный код, который пользуется сильной поддержкой сообщества.
Visual Studio Express включает развертывание Click-Once .
Этот сайт ссылается на параметры развертывания.