Gmock 0.5.0リリース


GmockはGroovy言語に基づくmockフレームワークである.Javaの様々なmockフレームワークと比較して、GmockはGroovy言語の特性を利用し、より簡素で読み取り可能な文法を提供しています.Groovyの公式ソリューションであるMockForクラスに比べて、より簡潔で読み取り可能な構文のほか、Gmock mockで出てくるオブジェクトはJavaコードで使用できるので、Javaでコードを記述し、GroovyとGmockでテストを記述することができます.
はじめに
まず、あなたのテストクラスはorg.gmock.GMockTestCaseを継承する必要があります.次に、mock()メソッドを使用してmockオブジェクトを作成し、mockオブジェクト上でメソッドを直接呼び出すだけで所望の動作を設定します.

def mockLoader = mock()
//             :
// Loader mockLoader = mock(Loader)
mockLoader.load("fruit").returns("apple")
最後に、play閉パッケージでテストを実行します.

void testBasic(){
  //   mock         
  play {
    //       
  }
}

とくせい
  • メソッド呼び出し:mockLoader.load("fruit").returns("apple")
  • 放出異常:mockLoader.load("unknown").raises(new RuntimeException()またはmockLoader.load("unknown").raises(RuntimeException)
  • stub:mockLoader.load("fruit").returns("apple").stub()
  • 静的方法:mockMath.static.random().returns(0.5)
  • プロパティ:mockLoader.name.returns(「loader」)
  • コンストラクション関数:def mockFile=mock(File,constructor('/a/path/file.txt'))
  • 予想呼び出し回数:mockLoader.load("fruit").returns("apple").atLeastOnce()
  • カスタムマッチング:mockLoader.load(match{it.startsWith(「fru」)
  • Hamcrest整合器をサポートする:mockLoader.put(「test」,is(not(lessThan(5))
  • テストクラスがGMockTestCaseを継承できない場合は、GMockControllerクラス
  • を使用します.
    詳しくはGmockの
    ドキュメント .

    完全な例:
    
    import org.gmock.GMockTestCase
    
    class LoaderTest extends GMockTestCase {
      void testLoader(){
        def mockLoader = mock()
        mockLoader.load('key').returns('value')
        play {
          assertEquals "value", mockLoader.load('key')
        }
      }
    }
    

    Webサイト
    公式サイト:
    http://gmock.org/
    ソース:
    http://code.google.com/p/gmock/