首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用DbConnection的NSubstitute

使用DbConnection的NSubstitute
EN

Stack Overflow用户
提问于 2020-07-31 12:47:08
回答 1查看 199关注 0票数 0

我需要将DbConnection传递给我的类。为此,我使用了NSubstitute。但当我运行测试时,出现了以下错误:"System.NullReferenceException: object reference未设置为Object的实例。Dapper“

我的测试

代码语言:javascript
复制
public class SceneApplicationServiceTest
{
    private readonly DbConnection _connection = Substitute.For<DbConnection>();
    ISceneApplicationService _sceneApplicationService;

    public SceneApplicationServiceTest()
    {
        _sceneApplicationService = new SceneApplicationService(_connection);
    }

    [Fact]
    public async Task ShouldBePossibleSuccessfullyGetByProgramScript()
    {
        const long programId = 1;
        const string scriptId = "2";            

        await _sceneApplicationService.GetByProgramScript(programId, scriptId);

        await _sceneApplicationService.Received(1).GetByProgramScript(programId, scriptId);
    }
}

我的方法

代码语言:javascript
复制
 public class SceneApplicationService : ISceneApplicationService
{
    private readonly DbConnection _connection;
    
    public SceneApplicationService(DbConnection connection)
    {
        _connection = connection;
    }

    public async Task<IEnumerable<LegacySceneResponse>> GetByProgramScript(long programId, string scriptId)
    {
        object parameters = new 
        {
            CodigoPrograma = programId,
            CodigoRoteiro = scriptId
        };

        if (!ObjectValidation.IsInvalidAnyNullOrEmpty(parameters)) ;

        return await _connection.QueryAsync<LegacySceneResponse>(GetScenesByScriptAndProgram.Query, parameters);
    }}

当测试尝试运行"QueryAsync“时,会出现错误。

有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2020-08-30 03:18:14

看这里,这是dapper扩展的moq:

https://github.com/UnoSD/Moq.Dapper

QueryAsync是Dapper nuget的扩展方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63185949

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档