小编Ser*_*ruk的帖子

scala mutable val List

几天前,我发现了保罗·菲利普的主旨https://gist.github.com/paulp/9085746,这显示了很奇怪的行为.我没有找到任何解释这怎么可能

简化的代码段:

val buf = new ListBuffer[Int]()
buf ++= Seq(1,2,3)
val lst: List[Int] = buf.toIterable.toList
println(lst) //List(1,2,3)
buf ++= Seq(4,5,6)
println(lst) //List(1,2,3,4,5,6)
Run Code Online (Sandbox Code Playgroud)

它没有预期的工作 toIterable

val buf = new ListBuffer[Int]()
buf ++= Seq(1,2,3)
val lst: List[Int] = buf.toList
println(lst) //List(1,2,3)
buf ++= Seq(4,5,6)
println(lst) //List(1,2,3)
Run Code Online (Sandbox Code Playgroud)

那里发生了什么?

scala list immutability mutability

7
推荐指数
1
解决办法
96
查看次数

sbt在Dynamic Task中设置java选项

我正在尝试编写接受输入参数的任务,将其传递给testOnly任务并执行.它工作得很好,但我无法在此任务中设置系统属性,这将在测试中可见.此属性不应影响其他任务,并且只应在此自定义任务中可见.

这是我的代码示例

lazy val myTestOnly = InputKey[Unit]("myTestOnly", "test only with special sys prop")

val myTestOnlyTask = myTestOnly := {
  Def.inputTaskDyn {
    val args: Seq[String] = spaceDelimited("").parsed

    javaOptions in Test ++= Seq("-Dfoo=bar") // does not work
    testOptions += Tests.Setup(() => System.setProperty("foo", "bar")) //does not work
    System.setProperty("foo", "bar") // does not work

    (testOnly in Test).toTask(" " + args.head)
  }.evaluated
}
Run Code Online (Sandbox Code Playgroud)

当我在sbt控制台中运行时

 myTestOnly com.sampleTest
Run Code Online (Sandbox Code Playgroud)

testOnly执行但"foo"属性不可见

那么qustion是如何在任务定义中设置属性,这个属性只在当前任务的测试运行时中可见?

scala sbt

6
推荐指数
1
解决办法
418
查看次数

如何在 Apache Camel 中测试多个 RouteBuilder

我想在一个单元测试中测试多个骆驼 RouteBuilder 测试我所拥有的:

改变状态的自定义骆驼处理器

public class MyProcessor implements Processor {
   MyState state;
   public MyProcessor(MyState state) {this.state = state;}

   @Override
   public void process(Exchange exchange) throws Exception {
   state.setState(state.getState() + 5);
   }}
Run Code Online (Sandbox Code Playgroud)

两个简单的 RouteBuilders:首先将消息从“direct:start”路由到“direct:endroute1”,然后从“direct:endroute1”获取消息并路由到“mock:endroute2”

public class MyRouteBuilder1 extends RouteBuilder {
    MyState state;
    public MyRouteBuilder1(MyState state) {this.state = state;}

    @Override
    public void configure() throws Exception {
        from("direct:start").process(new MyProcessor(state)).to("direct:endroute1");
    }}

public class MyRouteBuilder2 extends RouteBuilder {
    MyState state;
    public MyRouteBuilder2(MyState state) {this.state = state;}

    @Override
    public void configure() throws Exception {
        from("direct:endroute1").process(new MyProcessor(state)).to("mock:endroute2");
    }} …
Run Code Online (Sandbox Code Playgroud)

java unit-testing apache-camel

5
推荐指数
2
解决办法
1万
查看次数

标签 统计

scala ×2

apache-camel ×1

immutability ×1

java ×1

list ×1

mutability ×1

sbt ×1

unit-testing ×1