2012-07-25 72 views
0

有人可以请帮忙。我有Play2项目,我需要测试一些DAO代码。 我使用http://www.playframework.org/documentation/2.0.2/ScalaTest的文档。 测试是非常简单的:尝试在scala测试中运行Play FakeAplication时出现片段评估错误

import models.Calendar 
import org.specs2.mutable._ 

import play.api.test._ 
import play.api.test.Helpers._ 

class CalendarSpec extends Specification { 
"Calendar model" should { 

    "be retrieved by id" in { 

    val fakeApp = FakeApplication() 
    running(fakeApp) { 

     lazy val calendarId= Calendar.addCalendar(
     Calendar(subject="test", 
      upAccount = "mytest", 
      masterId = 1, 
      calendarType = 1, 
      isAllDayEvent = false, 
      hasAttachment = false, 
      category = "test", 
      instanceType = 1, 
     upName = "test")) 
     lazy val Some(calendar) = Calendar.getCalendar(calendarId.get) 

     calendar.upAccount must equalTo("mytest") 
    } 
    } 
} 
} 

当我运行 'SBT测试' 我得到奇怪的错误:

[info] Calendar model should 
[error] ! Fragment evaluation error 
[error]  ThrowableException: play.api.test.Helpers$.play$api$http$HeaderNames$_setter_$ACCESS_CONTROL_ALLOW_ORIGIN_$eq(Ljava/lang/String;)V (TraversableLike.scala:194) 
[error] play.api.http.HeaderNames$class.$init$(StandardValues.scala:195) 
[error] play.api.test.Helpers$.<init>(Helpers.scala:16) 
[error] play.api.test.Helpers$.<clinit>(Helpers.scala:111) 
[error] CalendarSpec$$anonfun$1$$anonfun$apply$1.apply(CalendarSpec.scala:13) 
[error] CalendarSpec$$anonfun$1$$anonfun$apply$1.apply(CalendarSpec.scala:10) 
[error] play.api.test.Helpers$.play$api$http$HeaderNames$_setter_$ACCESS_CONTROL_ALLOW_ORIGIN_$eq(Ljava/lang/String;)V 
[error] play.api.http.HeaderNames$class.$init$(StandardValues.scala:195) 
[error] play.api.test.Helpers$.<init>(Helpers.scala:16) 
[error] play.api.test.Helpers$.<clinit>(Helpers.scala:111) 
[error] CalendarSpec$$anonfun$1$$anonfun$apply$1.apply(CalendarSpec.scala:13) 
[error] CalendarSpec$$anonfun$1$$anonfun$apply$1.apply(CalendarSpec.scala:10) 

StackOverflow上/谷歌一无所知此异常。提前致谢。

回答

0

stacktrace让我觉得你的类路径中库不正确或缺失。这就是为什么你看到“助手$”。追踪类构造函数似乎失败的地方。

您可以通过在测试目录中编写一个小应用来验证这一点,但不使用specs2,而是使用Play2的辅助类,并查看会发生什么。

相关问题