相关疑难解决方法(0)

Scala:从字段名称反射设置字段值

我正在学习scala,但无法知道如何做到这一点:

我在scala对象和google appengine实体之间进行映射,所以如果我有这样的类:

class Student {
    var id:Long
    var name:String
}
Run Code Online (Sandbox Code Playgroud)

我需要创建该类的一个实例,在java中我会得到它的名字然后然后做,field.set(object, value)但我找不到如何在scala中这样做.

我不能使用java反射,因为Student的字段被视为私有,而field.set因此而抛出错误.

谢谢

reflection scala

18
推荐指数
1
解决办法
8895
查看次数

将JUnit @Rule与ScalaTest一起使用(例如TemporaryFolder)

我希望能够使用JUnit规则,例如我们已经在内部开发的TemporaryFolder其他规则TestRule.实现这一目标的最佳方法是什么?我知道JUnitSuite但它似乎没有拿起@Rule注释.无论如何,我想使用不同的ScalaTest套件.

所以我的问题是:

  • ScalaTest套装是否支持JUnit规则?
  • 如果没有,是否有一个库可以使用Junit TestRule
  • 如果没有,如何TestRule在Scala测试中使用JUnit ?
  • 或者是否有更合适的Scala特定方法来完成什么TemporaryFolder,或者,例如,Stefan Birkner的系统规则提供的方法?

这是我尝试过的JUnitSuite:

class MyTest extends JUnitSuite {
  //@Rule
  //val temporaryFolder = new TemporaryFolder() // throws java.lang.Exception: The @Rule 'temporaryFolder' must be public.

  @Rule
  def temporaryFolder = new TemporaryFolder()

  @Test
  def test: Unit = {
    assert(temporaryFolder.newFile() !== null) // java.lang.IllegalStateException: the temporary folder has not yet been created
  }
}
Run Code Online (Sandbox Code Playgroud)

junit unit-testing scala scalatest

10
推荐指数
3
解决办法
4191
查看次数

标签 统计

scala ×2

junit ×1

reflection ×1

scalatest ×1

unit-testing ×1