2009-08-26 4 views
1

私はグリフォンと遊んでいます。テストを除いてすべてが非常にスムーズに動作します。easybでGriffonアプリケーションを効率的にテストするにはどうすればよいですか?

グリフォンアプリケーション全体を開始することなく別のコントローラメソッドをテストするのが好きです。これを行うには、私は コントローラに使用されているビューとモデルを模擬しなければならないと思う。 Expandoオブジェクトの模擬を のために、コントローラメソッドのテストとeasybを使ったアクションが長くなりすぎています。ここ

簡単な例である:

MyProjectView.groovy

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

class MyProjectController { 
def model 
def view 

void mvcGroupInit(Map args) { 
} 

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

MyProjectModel.groovy

class MyProjectModel {} 

easyb試験:MyProje ctStory.story

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) 
} 
} 

グリフォンコントローラメソッドをテストする簡単な方法はありますか?おそらく によって、ビューを嘲笑するためのより良いソリューションを使用して?

答えて

1

Griffonには、現時点でGrailsで見つかるようなプラグイン/ファシリティはありません。テストコントローラは、通常、統合テストで実行されます(これが、create-mvcテンプレートがテスト/統合の下にテストを配置する理由です)。

ただし、将来のリリースでは、模擬施設は疑問の余地がありません。

関連する問題