2014-06-26 10 views
6

तो में स्पॉक ढांचे के साथ इकाई परीक्षण लॉगिंग त्रुटि के मैं एक वर्ग एक विधि है कि संदेश लॉग है कि है:कैसे ग्रूवी

class Car { 
    private Logger logger = LoggerFactory.getLogger(Car.class); 


    void startCar() { 
     logger.error("car stopped working"); 
    } 
} 

मैं कैसे जांच कर सकते हैं कि त्रुटि स्पॉक परीक्षण ढांचे का उपयोग कर लॉग ऑन किया गया था?

class CarTest extends Specification { 
    def "test startCar"() { 
     given: 
     Car newCar = new Car(); 

     when: 
     newCar.startCar(); 

     then: 
     // HOW CAN I ASSERT THAT THE MESSAGE WAS LOGGED??? 
    } 
} 

उत्तर

12

आप लकड़हारा पर त्रुटि की एक मंगलाचरण के लिए जांच कर सकता है

@Grab(group='org.spockframework', module='spock-core', version='0.7-groovy-2.0') 
@Grab(group='org.slf4j', module='slf4j-api', version='1.7.7') 
@Grab(group='ch.qos.logback', module='logback-classic', version='1.1.2') 

import org.slf4j.Logger 

class MockLog extends spock.lang.Specification { 

    public class Car { 
     private Logger logger = org.slf4j.LoggerFactory.getLogger(Car.class); 
     void startCar() { 
      logger.error('car stopped working'); 
     } 
    } 

    def "mock log"() { 
    given: 
     def car = new Car() 
     car.logger = Mock(Logger) 
    when: 
     car.startCar() 
    then: 
     1 * car.logger.error('car stopped working') 
    } 
} 
संबंधित मुद्दे