Вы не можете издеваться над статическим методом с помощью ванильного мокито.
Я бы предложил создать защищенный метод в MyService, который бы обернул статический вызов и затем смоделировал его:
public class MyService implements UserDestinationResolver {
@Override
public UserDestinationResult myMethod(Message<?> message){
SimpMessageHeaderAccessor accessor = getAccessor(message, SimpMessageHeaderAccessor.class);
...
}
protected SimpMessageHeaderAccessor getAccessor(Message<?> message, Class<T> requiredType){
return SimpMessageHeaderAccessor.getAccessor(message, SimpMessageHeaderAccessor.class);
}
Затем в тесте:
@RunWith(MockitoJUnitRunner.class)
public class MyServiceTest {
@Mock
private Message<?> message;
@Mock
private UserDestinationResult userDestinationResult;
@InjectMocks
@Spy
private MyService myService;
@Before
public void set_up(){
accessor = SimpMessageHeaderAccessor.wrap(message);
}
@Test
public void resolveDestination(){
// Arrange
doREturn(accessor).when(myService).getAccessor(message,
SimpMessageHeaderAccessor.class));
....
}
Изменение здесь что вам нужно шпионить за MyService, чтобы иметь возможность смоделировать защищенный метод.
На работе мы раньше использовали сервер SMTP в IIS 6.0 в течение многих лет, и это прекрасно подошло.
В конечном счете мы просто не хотели все проблемы, которые идут с выполнением Вашего сервера SMTP, таким образом, мы отобразили наши записи MX на сторонний сервис и шли дальше с нашими жизнями.
Это не на самом деле что плохо идея отобразить Ваши записи MX на стороннего поставщика, как Google. Это - один сервис меньше для конфигурирования и один сервис меньше для исправления.
Что относительно xmailserver (как предложено в этом ТАК вопрос)?
Это свободно, и для Windows, или Linux (должны Вы мигрировать на серверной платформе Linux),
(источник: xmailserver.org)
Будучи на окнах, Вашим лучшим выбором, вероятно, будет IIS.
Если бы это был Linux, то я предложил бы постфикс.
Возможно, отправка его через Gmail является хорошей :P Хорошо серьезный. IIS7 кажется, что я слышал, чтобы иметь некоторое достойное улучшение. Если это не делает его, я предполагаю, что Вы могли бы попробовать свободный материал как mailenable. (Не я не могу найти доказательство на улучшении на IIS SMTP, комментируют люди, которые знают об этом),
Длительный срок Вы могли бы закончить, разделил его к Linux базирующийся smtp, хотя, который дает Вам некоторую гибкость на сельском хозяйстве сервера, если это идет слишком безумное.
И если для какого-либо вида массовой рассылки, которая могла бы инициировать блокирование сервера спама, никогда не пытайтесь разместить его вместе со своим другим важным материалом - Вы хотите сохранить себя, имеют задний шаг, если Ваш сервер заблокирован.
Вы не упомянули, необходимо ли получить почту, или только отправить его. Один из лучших, все вокруг решений для почтового сервера окон - iMail IpSwitch (http://www.ipswitch.com/), но он стоит.
Если главным образом необходимо отправить почту, то лучший выбор состоит в том, чтобы использовать восходящий поток smtp сервер.
IIS smtp сервисы, в целом, не полезен. При использовании Exchange это становится немного лучше, но все еще не очень эффективным, а не самое безопасное каким-либо образом.
Я попал в эту ветку через Google, но я искал только исходящий SMTP-сервер для транзакционных писем (подтверждение регистрации клиента и т. Д., Но не маркетинг). Затем я обнаружил следующие вещи:
SMTP все еще работает существуют в Windows Server 2008.
Диспетчер сервера> Функции (не роли)> щелкните правой кнопкой мыши, выберите> Сервер SMTP - затем настройте IIS 7 SMTP, чтобы он указывал на локальный сервер.
Затем используйте Framework для ведения бизнеса: http://msdn.microsoft.com/en-us/library/system.net.mail.smtpclient.aspx
У Джанго есть платный, но дешевый Достаточно обслуживания именно для такого рода вещей. Бесплатная учетная запись позволяет только 200 в месяц, но может быть полезна для некоторых людей.
http://www.jangosmtp.com/Pricing.asp
Удачи!
ОБНОВЛЕНИЕ
Я писал в блоге о настройке исходного сервера MS SMTP на Windows Server 2008.
http://www.lukepuplett.com/2010/06/how-to-send-email-from-microsoft -server.html