在编写测试时,我遇到了以下例外:
java.lang.ClassCastException: codegen.java.lang.Object$MockitoMock$641592186 cannot be cast to cats.effect.IO (MyRepositorySpec.scala:19)
使用 specs2
运行此测试代码时会发生这种情况:
class MyRepositorySpec extends Specification with Mockito with TestData {
...
val m = mock[MyDAO[IO]].smart
m.createTable returns IO { Right[Throwable, Int](1) } // <- this is line 19
val r = new MyRepository[IO](m)
r.setup.unsafeRunSync() must beNone
...
}
MyDAO
看起来像这样:
class MyDAO[M[_] : Monad](val transactor: Transactor[M])(implicit val AE: ApplicativeError[M, Throwable]) extends DataAccessObject[M, MyObject]
而< code>DataAccessObject是这样的:
trait DataAccessObject[M[_], T <: Entity]
我不知道如何解决/正确实现这个问题。任何帮助都将不胜感激。谢谢大家!
尝试
class IOMyDAO(override val transactor: Transactor[IO]) extends MyDAO[IO](transactor)
val m = mock[IOMyDAO].smart
基于这个答案。
您应该尝试使用< code > org . mock ITO . mock ITO # when 而不是< code>specs2的内部metod匹配功能:
when(m.createTable) thenReturn IO { Right[Throwable, Int](1) }
而不是
m.createTable returns IO { Right[Throwable, Int](1) }
我在我的android应用程序中使用谷歌地图。我已经创建了密钥并在清单文件中添加了必要的权限。但很快我启动了应用程序,我在调试器中收到了这条消息: Google服务初始化失败,状态:10,缺少用于初始化Google服务的预期资源:“R.string.google_app_id”。可能的原因是缺少google-services.json或com.google.gms.google服务gradle插件
如果做了上一节练习,你会发现模型net在调用初始化函数initialize之后、在做前向计算net(X)之前时,权重参数的形状中出现了0。虽然直觉上initialize完成了所有参数初始化过程,然而这在Gluon中却是不一定的。我们在本节中详细讨论这个话题。 延后初始化 也许读者早就注意到了,在之前使用Gluon创建的全连接层都没有指定输入个数。例如,在上一节使用的多层感知机net里,我们创建的隐
我正在尝试使用Spring Security实现一个简单的登录(我是Spring Security的新手)。我从Spring Security参考开始,其中包含一个简单的“Hello world”示例(链接)。我在Eclipse中准备了一个Web项目(带有EAR项目),文件结构如下所示: SecurityConfig和SecurityWebApplicationInitializer类与上面链接(
我使用velocity作为Java代码生成器,我正在运行一个Eclipse应用程序,它有多个插件,不同的插件调用velocity模块进行代码生成。 每当我运行一个特定的插件时,不管我运行多少次,它都可以单独工作,现在如果我试图运行另一个插件,它会抛出速度异常(我在下面提供了堆栈跟踪),我将再次重启eclipse,其他插件也可以工作。 结论:当一个插件在某个插件已经执行后运行时,Velocity初始
在这里,我想在测试方法时模拟,我需要模拟变量的初始化。有线索吗? 编辑:我不允许修改Person类。
对于我的Android应用程序,我需要集成firebase。所以我跟着谷歌教程学习。 现在我总是在实现firebase之后 当我运行应用程序(在真实设备和模拟) 已经看到了:Firebase数据库依赖崩溃应用程序,但他正在使用旧版本... 以下是项目的分级: 有人知道该怎么做才能解决这个初始化问题吗?