作成が可能ですSpock 1.1以降はDetachedMockFactory
とSpockMockFactoryBean
です。 XMLベースの設定のためのspock
名前空間もサポートされています。使用例in the documentationが見つかります。Javaベースの構成とDetachedMockFactory
を使用して
春のテストでは、次のようになります。
@ContextConfiguration(classes = [TestConfig, DiceConfig])
class DiceSpec extends Specification {
@Autowired
private RandomNumberGenerator randomNumberGenerator
@Subject
@Autowired
private Dice dice
def "uses the random number generator to generate results"() {
when:
dice.roll()
then:
1 * randomNumberGenerator.randomInt(6)
}
static class TestConfig {
private final mockFactory = new DetachedMockFactory()
@Bean
RandomNumberGenerator randomNumberGenerator() {
mockFactory.Mock(RandomNumberGenerator)
}
}
}
@Configuration
class DiceConfig {
@Bean
Dice dice(RandomNumberGenerator randomNumberGenerator) {
new Dice(randomNumberGenerator)
}
}
そしてXMLベースの構成は次のようになります。
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:spock="http://www.spockframework.org/spring"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.spockframework.org/spring http://www.spockframework.org/spring/spock.xsd">
<spock:mock id="randomNumberGenerator" class="RandomNumberGenerator"/>
</beans>
はspock-spring
依存関係を含めるようにしてください:
testCompile group: 'org.spockframework', name: 'spock-spring', version: '1.1-groovy-2.4-rc-3'
私はSpringOne Spock&testMvc sessに座っていますいくつかのサービスを混ぜ合わせるために、Springが設定したいくつかのサービス(例えば、テストの外に統合ロジックを持たないようにするため)が、この機能は非常に便利であることが明らかになり始めています。 –
おそらくSpecificationMixinは私が探していたものですか? –
私は 'SpecificationMixin'に慣れていません。作品にはモックの外部構築が可能なプルリクエストがあり、次回のSpockバージョンとともに出荷されることを願っています。 –