2015-10-12 23 views
2

我似乎无法弄清楚如何整合三者。我已经找到了如何使用specs2scalacheck类似下面的测试:玩+ specs2 + scalacheck?

class ExampleSpec extends Specification with ScalaCheck { def is = s2""" 
    Example 
    scalacheck $e1 
    """ 
    def e1 = prop((i: Int) => i == i) 
} 

使用所谓的Acceptance specification style

但是,Play,Unit specification style是强制使用像WithApplication和什么的好东西。

我天真地以为这会工作:

class PlayExampleSpec extends PlaySpecification with ScalaCheck { 
    "Play" in new WithApplication() { 
    "scalacheck" in prop((s: String) => s == s) 
    } 
} 

测试没有得到所有执行。我已经浏览了一半的互联网无济于事。请帮忙。

回答

2

如果您使用的是WithApplication,您必须能够在属性失败时抛出异常(因为prop是纯粹的,并且会在WithApplication的主体中丢失)。 AsResult为您做到这一点:

import org.specs2.execute.AsResult 

class TestMutableSpec extends mutable.Specification with ScalaCheck { 
    "Example" in new WithApplication { 
    AsResult { 
     prop((s: String) => s != s) 
    } 
    } 
} 

上面的例子会失败。

+0

你说得对。它确实有效。然而,当你将这个模块放在'Play'的'WithApplication'中时什么都行不通。我已经编辑了这个问题,如果你能帮忙,我会永远感激。 –

+0

就是这样!不幸的是,这不是太好记录。谢谢你节省了我的一天。 –