Тестирование SMTP с .NET

Наиболее распространенным способом установки модулей python является PyPy. См. Страницу модуля на странице https://pypi.python.org/pypi/python-linkedin . Он содержит инструкции по установке.

$ pip install python-linkedin

53
задан f3lix 15 February 2009 в 13:54
поделиться

10 ответов

Проект smtp4dev - еще один фиктивный SMTP-сервер. Мне это нравится, потому что у него красивый и простой пользовательский интерфейс, который регистрирует сообщения и позволяет просматривать содержимое последних сообщений. Написано на C # с помощью установщика MSI. Исходный код доступен.

20
ответ дан 7 November 2019 в 08:30
поделиться

есть также мой собственный http://ssfd.codeplex.com/ , который представляет собой эмулятор SMTP с открытым исходным кодом. Получает электронные письма и помещает их в папку, доступ к которой можно получить с помощью значка задачи

0
ответ дан 7 November 2019 в 08:30
поделиться

DevNull SMTP-сервер регистрирует все кровавые подробности о связи между клиентом и SMTP-сервером. Похоже, это было бы полезно, если бы вы пытались диагностировать, почему ваш код отправки не работает.

Он написан на Java и развертывается как исполняемый файл jar. Исходный код недоступен.

2
ответ дан 7 November 2019 в 08:30
поделиться

Если вы находитесь на Mac OS X, вы можете использовать MOCKSMTP.APP

2
ответ дан 7 November 2019 в 08:30
поделиться

Блоки являются замыканиями, и arg действительно доступен внутри блока Class.new . Он просто недоступен в методе foo , поскольку def запускает новую область. Если заменить def на define _ method , который принимает блок, вы увидите нужный результат:

def R(arg)
    Class.new do
        define_method(:foo) do
           puts arg
        end
    end
end

class A < R("Hello!")
end

A.new.foo # Prints: Hello!
-121--1665181-

Для использования темы пользовательского интерфейса jQuery используйте следующий код:

$('#'+gridName+' tr:nth-child(even)').removeClass("ui-priority-secondary");
$('#'+gridName+' tr:nth-child(odd)').addClass("ui-priority-secondary");

Я использую этот код при выполнении сортировки вручную (перетаскивание)

-121--3153611-

Для .NET ребята там. Держать это просто.

Мы изучали это, а затем один из разработчиков вспомнил о настройке конфигурации, которая позволяет переопределить способ отправки сообщений электронной почты.

Это создаст файл для каждого сообщения электронной почты и оставит его в покое.

<system.net>
    <mailSettings>
      <smtp deliveryMethod="SpecifiedPickupDirectory">
        <specifiedPickupDirectory pickupDirectoryLocation="\\SharedFolder\MailDrop\" />
      </smtp>      
    </mailSettings>
  </system.net>
8
ответ дан 7 November 2019 в 08:30
поделиться

В .NET SmtpClient можно настроить для отправки электронной почты, поместив его в каталог получения.

Конструктор SmtpClient по умолчанию берет свои настройки из app.config, поэтому для тестовой среды мы можем настроить его следующим образом.

<configuration>
    <system.net>
        <mailSettings>
            <smtp deliveryMethod="specifiedPickupDirectory">
                <specifiedPickupDirectory pickupDirectoryLocation="path to a directory" />
            </smtp>
        </mailSettings>
    </system.net>
</configuration>

Ссылка MSDN - элемент app.config mailSettings http://msdn.microsoft.com/en-us/library/w355a94k.aspx

29
ответ дан 7 November 2019 в 08:30
поделиться

Вы также можете использовать netDumbster.

http://netdumbster.codeplex.com/

2
ответ дан 7 November 2019 в 08:30
поделиться

Существует также Papercut, который является сервером SMTP, который получит сообщения, но не поставит им куда угодно (разрешающий Вам удостовериться, что они отправляются правильно). Полученные сообщения видимы в маленьком GUI и также записаны в каталог.

41
ответ дан Malice 7 November 2019 в 18:30
поделиться

Я думаю сообщение в блоге А, Простая Насмешка Сервера SMTP для.NET дает Вам, в чем Вы нуждаетесь: насмешка сервера SMTP

А, насмешка сервера SMTP является в основном поддельным сервером SMTP, который может использоваться для поблочного тестирования приложений, которые отправляют электронные письма.

кроме того, поиск Google smtp ложный сервер предоставит Вам выбор серверов SMTP для тестирования. Как:

  • Dumbster - Java фальсифицируют сервер SMTP
  • nDumbster - порт.NET Dumbster
7
ответ дан f3lix 7 November 2019 в 18:30
поделиться

Альтернативный способ сделать это должно создать обертку вокруг SmtpClient, который реализует тот же интерфейс. Затем введите и используйте обертку в своем классе. При выполнении поблочного тестирования можно затем заменить ложной оберткой, которая имеет ожидания вызовов метода и ответов.

РЕДАКТИРОВАНИЕ : обертка необходима (для RhinoMocks, по крайней мере), потому что SmtpClient не происходит из интерфейса и не имеет виртуальных методов. При использовании платформы насмешки, которая может дразнить класс без виртуальных методов непосредственно, можно пропустить обертку и ввести насмешку SmtpClient непосредственно.

public class SmtpClientWrapper
{
    private SmtpClient Client { get; set; }

    public SmtpClientWrapper( SmtpClient client )
    {
         this.Client = client;
    }

    public virtual void Send( MailMessage msg )
    {
         this.Client.Send( msg );
    }

    ...
}


public class MyClass
{
    private SmtpClientWrapper Client { get; set; }

    public MyClass( SmtpClientWrapper client )
    {
         this.Client = client;
    }

    public void DoSomethingAndNotify()
    {
         ...
         this.Client.Send( msg );
    }
}

Протестированный (с RhinoMocks) как:

public void DoSomethingAndNotifySendsAMessageTest()
{
     SmtpClientWrapper client = MockRepository.GenerateMock<SmtpClientWrapper>();
     client.Expect( c => c.Send( new MailMessage() ) ).IgnoreArguments();

     MyClass klass = new MyClass( client );

     klass.DoSomethingAndNotify();

     client.VerifyAllExpectations();
}
4
ответ дан tvanfosson 7 November 2019 в 18:30
поделиться
Другие вопросы по тегам:

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