如何验证在 C# XUnit 中调用了 None-Mocked 方法

问题描述 投票:0回答:1
    public async Task<bool> Handle(ConfirmPlayerCommand request, CancellationToken cancellationToken)
    {
        var player = await _context.Players.FirstAsync(a => a.Id == request.PlayerId, cancellationToken);
        player.ConfirmPlayer();
        await _context.SaveChangesAsync(cancellationToken);
        return true;
    }

z 我的 CommandHandler 中有这段代码。我知道如何验证是否使用 Moq 调用 _context.SaveChangesAsync。 问题是,我不知道如何确保调用 player.ConfirmPlayer();

应该调用 Player.ConfirmPlayer() 来确认玩家。 palyer 对象没有被注入,所以它也没有被模拟。 我期望一种编写测试来检查 Player.ConfirmPlayer() 被调用的方法。

c# unit-testing xunit
1个回答
0
投票

调用

player.ConfirmPLayer();
一定会产生副作用。要么玩家对象发生变化,以便您可以检查它,要么它调用其他您可以检查/验证的东西。

我们对您如何设置测试或固定装置一无所知,因此如果您的错误与此相关,我们无法真正帮助您。

© www.soinside.com 2019 - 2024. All rights reserved.