Нужен ли отдельный модуль в каждом тестовом примере с использованием Nancy?

Я хочу протестировать свое веб-приложение без слоя веб-сервисов. для этого я использую фреймворк Нэнси.

Я издеваюсь над ServiceA следующим образом:

public class ServiceAModule : NancyModule
{
    public ServiceAModule () : base("/serviceAPath")
    {
        Get["/"] = p =>
        {
            var s = @"{Property1 : 23}";
            var jsonBytes = Encoding.UTF8.GetBytes(s);

            return new Response
            {
                ContentType = "application/json",
                Contents = stream => stream.Write(jsonBytes, 0, jsonBytes.Length),
                StatusCode = HttpStatusCode.OK
            };
        };
    }

Теперь в моих тестах: я инициализирую сервис Nancy:

    private static IDisposable CreateService()
    {
        const string url = "http://+:8088";

        var service = WebApp.Start(url, builder =>
        {
            var browser = new Browser(with => { with.EnableAutoRegistration(); });

            builder.UseNancy();
        });

        return service;
    }

И я тестирую пользовательский интерфейс приложения, используя селен. Мой вопрос: мне нужен другой сценарий (другой ответ от ServiceAModule Get end point), каковы мои варианты? На мой взгляд, у меня есть один вариант: создать разные модули для каждого теста и зарегистрировать этот модуль в каждом тесте. Это решение приносит много кода и беспорядка.

У меня есть другой вариант? Каково общее использование Нэнси в этих случаях?

Спасибо!

1 ответ

Что вы подразумеваете под другим ответом? Вы можете добавить столько действий, сколько хотите в одном модуле

public ServiceAModule () : base("/serviceAPath")
{
    Get["/"] = p => Response.AsJson(new {Property1 : 23 });
    Post["/"] = p => Response.AsText("Saved !!!");
    Get["/thing"] = p => Response.AsJson(new { foo : 3434 , bar : 900 });

}
Другие вопросы по тегам