小编mus*_*oom的帖子

为什么这个specs2测试使用Mockito传递?

假设我有这个接口和类:

abstract class SomeInterface{
  def doSomething : Unit
}

class ClassBeingTested(interface : SomeInterface){
  def doSomethingWithInterface : Unit = {
    Unit
  }
}
Run Code Online (Sandbox Code Playgroud)

请注意,doSomethingWithInterface方法实际上不对接口执行任何操作.

我为它创建了一个测试:

import org.specs2.mutable._
import org.specs2.mock._
import org.mockito.Matchers
import org.specs2.specification.Scope

trait TestEnvironment extends Scope with Mockito{
  val interface = mock[SomeInterface]
  val test = new ClassBeingTested(interface)
}

class ClassBeingTestedSpec extends Specification{
  "The ClassBeingTested" should {
    "#doSomethingWithInterface" in {
      "calls the doSomething method of the given interface" in new TestEnvironment {
        test.doSomethingWithInterface
        there was one(interface).doSomething
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

这个测试通过.为什么?我设置错了吗? …

scala mockito specs2

9
推荐指数
1
解决办法
1628
查看次数

recaptcha配置中的代理是什么?

我正在使用Rails 3.1.0中的recaptcha gem.我按照github页面上的说明操作:https://github.com/ambethia/recaptcha

我已经获得了密钥并正在配置recaptcha,如下所示.

Recaptcha.configure do |config|
  config.public_key  = '6Lc6BAAAAAAAAChqRbQZcn_yyyyyyyyyyyyyyyyy'
  config.private_key = '6Lc6BAAAAAAAAKN3DRm6VA_xxxxxxxxxxxxxxxxx'
  config.proxy = 'http://myproxy.com.au:8080'
end
Run Code Online (Sandbox Code Playgroud)

config.proxy的目的是什么?我应该填写什么?

proxy ruby-on-rails recaptcha

8
推荐指数
1
解决办法
1511
查看次数

scala中对csv的强类型访问?

我想以强类型的方式访问scala中的csv文件.例如,当我读取csv的每一行时,它会自动解析并表示为具有适当类型的元组.我可以在传递给解析器的某种模式中预先指定类型.这样做是否存在任何库?如果没有,我怎么能自己实现这个功能呢?

csv scala tuples strong-typing

8
推荐指数
1
解决办法
4338
查看次数

如何在sbt任务的定义中使用库依赖项?

我正在定义一个需要在库中调用代码的sbt任务.这是一个build.sbt文件,包含我到目前为止所尝试的内容:

libraryDependencies ++= Seq("com.some.company" %% "some-lib" % "1.0.0")

val doSomething = taskKey[Unit]("does something")

doSomething := {
  import com.some.company.function
  function()
}
Run Code Online (Sandbox Code Playgroud)

进口不起作用.如何定义依赖于外部库中的代码的任务?

scala sbt

8
推荐指数
1
解决办法
998
查看次数

如何在帮助程序中使用form_tag?

我有一个帮助器,我用来生成一个表单.用于生成表单字段的参数将传递给帮助程序.我无法弄清楚如何在模板外使用块.

例如:

def generate_form(path, fields)
    form_tag(path, method: :get) do
        # what do I do in here?
    end
end
Run Code Online (Sandbox Code Playgroud)

当我在块中渲染部分时,渲染的网页中不会出现任何内容.如果我将一堆标签(field_tag,text_field_tag等)连接在一起,那么页面上会出现原始html.

我正在使用Rails 3.1.0

ruby-on-rails

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

多范围唯一性验证

我想澄清多范围唯一性验证的行为.该文件说:

甚至是多个范围参数.例如,确保教师每学期只能按照特定班级的时间表进行一次.

class TeacherSchedule < ActiveRecord::Base
  validates_uniqueness_of :teacher_id, :scope => [:semester_id, :class_id]
end
Run Code Online (Sandbox Code Playgroud)

我对此的理解是,我可以让一位老师在同一学期教授两门课,但不是同一节课,我可以让一位老师在不同的学期教授同一节课.它是否正确?所有3个字段必须匹配某些现有记录才能使验证失败?

有没有办法验证它,如果semester_id或class_id匹配,它会失败?

activerecord ruby-on-rails

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

Coq中Fixpoint的局限性?

我和Coq鬼混.具体来说,我试图实现mergesort,然后证明它的工作原理.

我尝试实施的是:

Fixpoint sort ls :=
match ls with
| nil => nil
| cons x nil => cons x nil
| xs =>
  let (left, right) := split xs nil nil
  in merge (sort left) (sort right)
end.
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

Error:
Recursive definition of sort is ill-formed.
In environment
sort : list nat -> list nat
ls : list nat
x : nat
l : list nat
y : nat
l0 : list nat
left : list nat
right : …
Run Code Online (Sandbox Code Playgroud)

coq totality

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

在Play 2自定义FieldConstructor中添加类到输入

我在Play 2中创建一个自定义字段构造函数:

@(elements : helper.FieldElements)

<div class="@if(elements.hasErrors) {error}">
    <label for="@elements.id">@elements.label</label>
    <div class="input">
        @elements.input
        <span class="errors">@elements.errors.mkString(", ")</span>
        <span class="help">@elements.infos.mkString(", ")</span>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

我需要输入元素始终具有特定的类"my-class".我怎样才能做到这一点?FieldElements类有一个args成员.我尝试将带有"my-class"的元素的副本附加到与args中的'_class相关联的值,但这似乎不会影响input元素.

playframework playframework-2.0

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

自动将案例类转换为无形的可扩展记录?

如果我有这两个案例类:

case class Address(street : String, zip : Int)
case class Person(name : String, address : Address)
Run Code Online (Sandbox Code Playgroud)

和一个实例:

val person = Person("Jane", Address("street address", 12345))
Run Code Online (Sandbox Code Playgroud)

有没有办法在无形状中自动转换person为可扩展记录?

我对浅层和深层转换感兴趣.

浅拷贝将是这样的:

'name ->> "Jane" :: 'address ->> Address("street address", 12345) :: HNil
Run Code Online (Sandbox Code Playgroud)

在深度转换中,嵌套的case类也成为记录:

'name ->> "Jane" :: 'address ->> ('street ->> "street address" :: 'zip ->> 12345 :: HNil) :: HNil
Run Code Online (Sandbox Code Playgroud)

我也有兴趣将记录转换回案例类.

scala shapeless

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

是什么 ?类型?

我正在尝试为Monad具有多个类型参数的类型实现cat 实例.我看着猫的Either实例,看看它是如何在那里完成的.Either Monad来自猫的部分实例代码复制如下:

import cats.Monad

object EitherMonad {
  implicit def instance[A]: Monad[Either[A, ?]] =
    new Monad[Either[A, ?]] {
      def pure[B](b: B): Either[A, B] = Right(b)

      def flatMap[B, C](fa: Either[A, B])(f: B => Either[A, C]): Either[A, C] =
        fa.right.flatMap(f)
    }
}
Run Code Online (Sandbox Code Playgroud)

它无法编译错误: error: not found: type ?

什么是?类型,如何在为自己的类型创建实例时使用它?

scala scala-cats

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