gpt4 book ai didi

c# - NSubstitute 与 PRISM EventAggregator : Assert that calling a method triggers event with correct payload

转载 作者:行者123 更新时间:2023-11-30 16:04:00 26 4
gpt4 key购买 nike

考虑以下更新人员并通过 PRISM EventAggregator 发布事件以指示人员已更新的方法。

我想对消息是否使用正确的负载发送进行单元测试。在这种情况下,这意味着正确的 personId。

public void UpdatePerson(int personId)
{
// Do whatever it takes to update the person
// ...

// Publish a message indicating that the person has been updated
_eventAggregator
.GetEvent<PersonUpdatedEvent>()
.Publish(new PersonUpdatedEventArgs
{
Info = new PersonInfo
{
Id = personId,
UpdatedAt = DateTime.Now
};
});
}

我知道我可以创建事件聚合器的替代品:

var _eventAggregator = Substitute.For<IEventAggregator>();

但是,我不知道如何检测消息何时发送以及如何检查其有效负载。

最佳答案

我不是经验丰富的单元测试人员,所以我不确定这是要编写的正确单元测试。但无论如何,到目前为止我就是这样测试它的,它似乎可以满足我的要求。

[Test]
public void TestPersonUpdateSendsEventWithCorrectPayload()
{
// ARRANGE
PersonUpdatedEventArgs payload = null;
_eventAggregator
.GetEvent<PersonUpdatedEvent>()
.Subscribe(message => payload = message);

// ACT
_personService.UpdatePerson(5);

// ASSERT
payload.Should().NotBeNull();
payload.Id.Should().Be(5);
}

欢迎反馈。

关于c# - NSubstitute 与 PRISM EventAggregator : Assert that calling a method triggers event with correct payload,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35868184/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com