У меня есть объект, который реализует inotifypropertychanged . Как и следовало ожидать, есть свойства, которые, если вы измените напрямую, он уведомит об изменении. Тем не менее, существуют другие свойства, которые могут измениться, а также побочный эффект от изменения другого свойства и , что уведомление -это то, что я хочу проверить.public class MyObject : INotifyPropertyChanged
{
public string MyProperty
{
get;
set; // notify code omitted for brevity
}
public string DependentOnMyProperty
{
get; // value gets updated based on `MyProperty`
}
}
var obj = new MyObject();
obj.MyProperty = "Value"; // should notify of property changes: MyProperty and DependentOnMyProperty
< /code>
Как я могу написать мой модульный тест таким образом, чтобы он мог обнаружить событие для другого свойства? Assert.raises () , кажется, сообщает только о первом поднятом событии, а затем игнорирует остальное. В то же время, это то, что у меня сейчас есть.[Fact]
public void ComputedProperty_WhenChangingDependentValue_RaisesPropertyChangedEvent()
{
var obj = new MyObject();
var hitCounts = new Dictionary();
obj.PropertyChanged += (sender, args) =>
{
if (!hitCounts.ContainsKey(args.PropertyName!))
{
hitCounts[args.PropertyName] = 0;
}
hitCounts[args.PropertyName]++;
};
obj.MyProperty = "Test Value";
Thread.Sleep(100); // Allow time for computed property to update
obj.MyProperty.Should().Be("Test Value");
obj.DependentOnMyProperty.Should().Be("Value derived from Test Value");
hitCounts.Should().ContainKey(nameof(MyObject.DependentOnMyProperty)).WhoseValue.Should().Be(1);
}
Подробнее здесь: https://stackoverflow.com/questions/797 ... nts-raised
Как проверить, было ли определенное событие с конкретными ARGS, было одним из многих событий? ⇐ C#
Место общения программистов C#
1753984511
Anonymous
У меня есть объект, который реализует inotifypropertychanged . Как и следовало ожидать, есть свойства, которые, если вы измените напрямую, он уведомит об изменении. Тем не менее, существуют другие свойства, которые могут измениться, а также побочный эффект от изменения другого свойства и , что уведомление -это то, что я хочу проверить.public class MyObject : INotifyPropertyChanged
{
public string MyProperty
{
get;
set; // notify code omitted for brevity
}
public string DependentOnMyProperty
{
get; // value gets updated based on `MyProperty`
}
}
var obj = new MyObject();
obj.MyProperty = "Value"; // should notify of property changes: MyProperty and DependentOnMyProperty
< /code>
Как я могу написать мой модульный тест таким образом, чтобы он мог обнаружить событие для другого свойства? Assert.raises () , кажется, сообщает только о первом поднятом событии, а затем игнорирует остальное. В то же время, это то, что у меня сейчас есть.[Fact]
public void ComputedProperty_WhenChangingDependentValue_RaisesPropertyChangedEvent()
{
var obj = new MyObject();
var hitCounts = new Dictionary();
obj.PropertyChanged += (sender, args) =>
{
if (!hitCounts.ContainsKey(args.PropertyName!))
{
hitCounts[args.PropertyName] = 0;
}
hitCounts[args.PropertyName]++;
};
obj.MyProperty = "Test Value";
Thread.Sleep(100); // Allow time for computed property to update
obj.MyProperty.Should().Be("Test Value");
obj.DependentOnMyProperty.Should().Be("Value derived from Test Value");
hitCounts.Should().ContainKey(nameof(MyObject.DependentOnMyProperty)).WhoseValue.Should().Be(1);
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79721668/how-to-test-if-a-specific-event-with-specific-args-was-one-of-many-events-raised[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия