Moq 到 NSubstitute AddScoped

问题描述 投票:0回答:1

我是单元测试新手,所以我不确定我在寻找什么。我正在尝试将使用

Moq
的项目转换为
NSubstitute

问题:如何将此行从

Moq
转换为
NSubstitute

services.AddScoped(provider => Mock.Of<ICurrentUserService>(s => s.UserId == _currentUserId));

编辑1:

我尝试了以下操作,但出现错误消息:

The delegate type cannot be inferred

services.AddScoped(provider => Substitute.For<ICurrentUserService>(s => s.UserId == _currentUserId));

此行来自 此行CleanArchitectureWithBlazorServer 项目。

编辑2:

ICurrentUserService
来源:

public interface ICurrentUserService {
    string? UserId { get; }
    string? UserName { get; }
    string? TenantId { get; }
    string? TenantName { get; }
}
c# unit-testing moq nsubstitute
1个回答
0
投票

查看此处的文档将向您展示如何在模拟上配置属性

根据示例中提供的接口和要替换的代码,它看起来像这样:

services.AddScoped(provider => {
    var mock = Substitute.For<ICurrentUserService>()
    mock.UserId.Returns(_currentUserId);
    
    //...set other properties as needed
    
    return mock;
});

如果您查看主要文档,它应该可以帮助您更好地理解这个 .Net 模拟库

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