首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用easyb有效地测试Griffon应用程序?

如何使用easyb有效地测试Griffon应用程序?
EN

Stack Overflow用户
提问于 2009-08-26 15:24:39
回答 1查看 331关注 0票数 1

现在我正在和Griffon一起踢球。除了测试之外,所有的工作都很顺利。

我喜欢在不启动整个Griffon应用程序的情况下测试单独的控制器方法。要做到这一点,在我看来,我必须模拟控制器中使用的视图和模型。由于使用Expando对象的模拟,使用easyb的控制器方法和操作的测试变得太长。

下面是一个简单的例子:

MyProjectView.groovy

代码语言:javascript
复制
application(title: 'MyProject',
    pack: true,
    locationByPlatform: true,
    iconImage: imageIcon('/griffon-icon-48x48.png').image,
    iconImages: [imageIcon('/griffon-icon-48x48.png').image,
            imageIcon('/griffon-icon-32x32.png').image,
            imageIcon('/griffon-icon-16x16.png').image]
) {
tableLayout {
tr {
  td(align: "CENTER") {
    textField(id: 'textfield',
            text: "Hello")
  }
}

tr {
  td(align: "CENTER") {
    button(text: "check",
            actionPerformed: controller.checkForGreeting
    )
   }
  }
 }
}

MyProjectController.groovy

代码语言:javascript
复制
class MyProjectController {
def model
def view

void mvcGroupInit(Map args) {
}

def checkForGreeting = { evt = null ->
  return view.textfield.text == "Hello"
}

MyProjectModel.groovy

代码语言:javascript
复制
class MyProjectModel {}

易学测试: MyProjectStory.story

代码语言:javascript
复制
scenario "Hello Check", {
  def view
  MyProjectController controller = new MyProjectController()

given "A view with 'Hello' in the textfield", {
  view = new Expando()
  def textfield = new Expando()
  textfield.text = "Hello"
  view.textfield = textfield
  controller.view = view
}
then "checkForGreeting should return true", {
  controller.checkForGreeting().shouldBe(true)
 }
}

有没有更简单的方法来测试Griffon控制器方法?也许是通过使用更好的解决方案来模拟视图?

EN

回答 1

Stack Overflow用户

发布于 2009-08-28 06:09:28

目前,在Griffon中还没有像Grails那样的模拟插件/工具。测试控制器通常是在集成测试中完成的(这就是为什么create-mvc模板将测试放在测试/集成下)。

然而,模拟功能在未来的版本中也不是不可能的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1335541

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档