我使用Spock Framework和Groovy腳本來測試我的Java應用程序。在我創建的所有課程中,我的項目中有100%的測試覆蓋率。但是,我注意到覆蓋範圍顯示名爲「App」的主類未完全測試。Spock Framework如何測試Spring引導應用程序的上下文
這裏是我的App類啓動Spring應用程序:
package com.test.cli;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
@SpringBootApplication
public class App {
public static void main(String[] args) {
ConfigurableApplicationContext context = SpringApplication.run(App.class, args);
App app = context.getBean(App.class);
app.start();
}
private void start() {
System.out.print("App started ...");
}
}
這是一個測試,我對App類:
package com.test.cli
import com.test.cli.App
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.boot.test.context.SpringBootTest
import org.springframework.context.ApplicationContext
import spock.lang.Specification
@SpringBootTest(classes = App.class)
class AppSpecIT extends Specification {
@Autowired
ApplicationContext context
def "it should boot Spring application successfully"() {
expect: "application context exists"
context != null
}
}
您可以在這張截圖看到,專線12至18不包括在內,我想解決這個問題:
如何使用Spock Framework完全測試Spring Boot應用程序上下文?