Нужен ли отдельный модуль в каждом тестовом примере с использованием 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 });
}