#c# #razor #moq #bunit
Вопрос:
У меня есть условные фиктивные данные с moq, подобные этому, где они возвращают разные данные в зависимости от того, равен ли параметр нулю или нет.
locationMock
.Setup(x => x.GetAllLocations(It.IsAny<SearchRequest>()))
.Returns((SearchRequest req) =>
{
return req.SearchText == null
? thread
: filteredThread;
});
Я регистрирую услугу следующим образом Services.AddSingleton(locationMock.Object);
Затем у меня появляется поле ввода, в котором я ввожу «МЕСТОПОЛОЖЕНИЕ ТЕСТА» и нажимаю значок поиска, который должен фильтровать данные, иначе говоря, возвращать «Отфильтрованный поток». Когда я отлаживаю его, я вижу, что он работает в разных условиях. Однако возвращаемые данные всегда являются «потоком», который содержит не отфильтрованные данные, а исходные данные.
Мне интересно, что я делаю не так или могу ли я что-то сделать, чтобы добиться условного возврата данных, отображаемых в bunit.
var cut = RenderComponent<LocationList>();
var instance = cut.Instance;
instance.use = UseMode.None;
instance.Locations = locationData;
cut.Render();
cut.Find(".prompt.input-box").Input("TEST LOCATION");
cut.Find(".search-icon").Click();
cut.Render();
var bob = cut.FindAll("table > tbody > tr");
cut.WaitForState(() => cut.FindAll("table > tbody > tr").Count == 1, TimeSpan.FromSeconds(15));
Комментарии:
1. Установка параметров/свойств непосредственно в компоненте экземпляра может оказаться не очень хорошей идеей. Вместо этого попробуйте использовать
SetParametersAndRender(...)
. Это установит новые параметры так, как они были бы в обычной среде выполнения Blazor. Подробнее здесь: bunit.dev/документы/взаимодействие/…