假设我有这个接口和类:
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)
这个测试通过.为什么?我设置错了吗? …
我正在使用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的目的是什么?我应该填写什么?
我想以强类型的方式访问scala中的csv文件.例如,当我读取csv的每一行时,它会自动解析并表示为具有适当类型的元组.我可以在传递给解析器的某种模式中预先指定类型.这样做是否存在任何库?如果没有,我怎么能自己实现这个功能呢?
我正在定义一个需要在库中调用代码的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)
进口不起作用.如何定义依赖于外部库中的代码的任务?
我有一个帮助器,我用来生成一个表单.用于生成表单字段的参数将传递给帮助程序.我无法弄清楚如何在模板外使用块.
例如:
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
我想澄清多范围唯一性验证的行为.该文件说:
甚至是多个范围参数.例如,确保教师每学期只能按照特定班级的时间表进行一次.
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匹配,它会失败?
我和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) 我在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元素.
如果我有这两个案例类:
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)
我也有兴趣将记录转换回案例类.
我正在尝试为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 ?
什么是?类型,如何在为自己的类型创建实例时使用它?