首页 > 其他分享 >ZIMP - Unit Test Error

ZIMP - Unit Test Error

时间:2023-12-28 19:46:11浏览次数:33  
标签:return zimplebank gapi HashedPassword go arg Test ZIMP Unit

 

Running tool: /usr/local/go/bin/go test -timeout 30s -run ^TestCreateUserAPI$ github.com/ZhangZhihuiAAA/zimplebank/gapi -count=1 -v

=== RUN   TestCreateUserAPI
=== RUN   TestCreateUserAPI/OK
    /zdata/Github/zimplebank/gapi/rpc_create_user.go:33: Unexpected call to *mockdb.MockStore.CreateUser([context.Background {gyvclh $2a$10$7wUAC1GwMS2Ge5egd3tUven2S91j7GkvcTmNKRiJVWJwSEjzIHCue hzltgv [email protected]}]) at /zdata/Github/zimplebank/gapi/rpc_create_user.go:33 because: there are no expected calls of the method "CreateUser" for that receiver
    /zdata/Github/zimplebank/gapi/controller.go:243: missing call(s) to *mockdb.MockStore.CreateUserTx(is anything, matches arg {{gyvclh  hzltgv [email protected]} <nil>} and password axdvdw) /zdata/Github/zimplebank/gapi/rpc_create_user_test.go:47
    /zdata/Github/zimplebank/gapi/controller.go:243: aborting test due to missing call(s)
--- FAIL: TestCreateUserAPI (0.10s)
    --- FAIL: TestCreateUserAPI/OK (0.05s)
FAIL
FAIL	github.com/ZhangZhihuiAAA/zimplebank/gapi	0.102s

 

The failure point is at below function:

func (e eqCreateUserTxParamsMatcher) Matches(x any) bool {
    arg, ok := x.(db.CreateUserTxParams)
    if !ok {
        return false
    }

    err := util.CheckPassword(e.password, arg.HashedPassword)
    if err != nil {
        return false
    }

    e.arg.HashedPassword = arg.HashedPassword
    return reflect.DeepEqual(e.arg, arg)
}

This is because the arg has a function field, but there's no way in Go to compare two functions:

type CreateUserTxParams struct {
    CreateUserParams
    AfterCreate func(user User) error
}

So only compare the first field:

func (e eqCreateUserTxParamsMatcher) Matches(x any) bool {
    arg, ok := x.(db.CreateUserTxParams)
    if !ok {
        return false
    }

    err := util.CheckPassword(e.password, arg.HashedPassword)
    if err != nil {
        return false
    }

    e.arg.HashedPassword = arg.HashedPassword
    return reflect.DeepEqual(e.arg.CreateUserParams, arg.CreateUserParams)
}

 

标签:return,zimplebank,gapi,HashedPassword,go,arg,Test,ZIMP,Unit
From: https://www.cnblogs.com/zhangzhihui/p/17933413.html

相关文章

  • Unity_U_OP1 ScriptableObject 替代单例
    核心思想:解耦GameManager单例模式,不再由一个单例管理所有事件触发,拆分成无数个小单例,各自管理优点:更加灵活的事件管理模式复用性高,对于相关类型的事件,只需要写一遍代码,剩下的拖拖拖就可以实现相同的功能。缺点:管理起来相对麻烦不利于维护,除非对这个系统非常了解,要不然排......
  • Maya与Unity模型尺度统一
    Maya与Unity模型尺度统一Maya建模默认使用的单位是cm,Unity使用的是m,有时候可能需要把Maya中建好的模型导入到Unity中,因此这篇文章介绍如何修改Maya的默认建模单位,从而使得二者的尺度统一。进入窗口,设置,首选项。修改为m......
  • Unity引擎2D游戏开发,敌人追击状态的转换
    思路:从敌人的位置发射一道射线或者一片区域来对玩家实体进行检测,如果检测倒玩家,则进行追击进攻利用BoxCast()即可实现BoxCast()官方文档:https://docs.unity3d.com/cn/2022.3/ScriptReference/Physics2D.BoxCast.html创建检测区域由于BoxCast需要众多参数,所以在Enemy中创建......
  • Unity3D 如何提升游戏运行效率详解
    前言Unity3D是一款非常强大的游戏引擎,但是在处理复杂场景和大量资源时,游戏运行效率可能会遇到一些问题。本文将详细介绍如何提升Unity3D游戏的运行效率,包括技术详解和代码实现。对惹,这里有一个游戏开发交流小组,希望大家可以点击进来一起交流一下开发经验呀使用合适的资源压缩......
  • Unity3D Shader在GPU上是如何执行的详解
    Unity3D是一款广泛应用于游戏开发的跨平台开发引擎,它提供了丰富的功能和工具来帮助开发者创建高质量的游戏。其中一个重要的功能就是Shader,它可以用来控制对象的渲染效果。在Unity3D中,Shader是在GPU上执行的,那么它是如何工作的呢?本文将详细解释Unity3DShader在GPU上的执行过程,并......
  • Unity3D Shader Compute Shader基于GPU的并发计算详解
    在游戏开发中,计算密集型的任务通常需要耗费大量的CPU资源,这可能导致游戏性能下降,影响玩家的游戏体验。为了解决这个问题,Unity3D引入了ShaderComputeShader技术,它使用GPU进行并发计算,将一些计算密集型任务从CPU转移到GPU上执行,以提高游戏的性能和效率。本文将详细介绍Unity3DSha......
  • Unity3D 基类脚本怎么分别获取多个子类脚本的组件详解
    Unity3D是一款非常流行的游戏开发引擎,它提供了丰富的功能和工具,使得开发者可以轻松地创建高质量的游戏。在Unity3D中,脚本是游戏对象的一部分,它们通过附加到游戏对象上的组件来实现特定的功能。本文将详细介绍在Unity3D中如何分别获取多个子类脚本的组件,并提供相应的代码实现。对......
  • unity 标准资源包(过时)
    unity标准资源包Unity标准资源包(StandardAssets)是由Unity官方提供的一组可复用的资源集合,包含许多常用的游戏开发资源,如场景、材质、脚本、粒子效果、声音等。使用StandardAssets可以加速游戏开发的过程,因为它们已经预先制作好了,并且经过了官方的测试和优化,开发者可以......
  • AtCoder Beginner Contest 334
    B-ChristmasTrees难度:⭐⭐题目大意小莫从坐标轴的某个位置n种了一棵树,并且每隔m米就再种一棵树,注意是双向的,两边都种;给定一个区间,问这个区间中有多少棵树;解题思路我们可以让区间的边界都减去n,这样区间中的树都位于坐标km上;然后我们把边界都平移到正......
  • 【SpringBoot快速入门】(3)SpringBoot整合junit和MyBatis 详细代码示例与讲解
    目录1.SpringBoot整合junit1.1环境准备1.2编写测试类2.SpringBoot整合mybatis2.1回顾Spring整合Mybatis2.2SpringBoot整合mybatis2.2.1创建模块2.2.2定义实体类2.2.3定义dao接口2.2.4定义测试类2.2.5编写配置2.2.6测试2.2.7使用Druid数据源之前我们已经学习的Spring、......