如何将ScalaTest与Spring集成

Dun*_*gor 13 spring scala scalatest

我需要@Autowired使用Spring上下文中的字段填充我的ScalaTest测试,但是大多数Scalatest测试(例如FeatureSpecs不能由SpringJUnit4ClassRunner.class-

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations="myPackage.UnitTestSpringConfiguration", loader=AnnotationConfigContextLoader.class)
public class AdminLoginTest {
    @Autowired private WebApplication app;
    @Autowired private SiteDAO siteDAO;
Run Code Online (Sandbox Code Playgroud)

(Java,但你得到了主旨).

如何@AutowiredApplicationContextScalaTest中填充字段?

class AdminLoginFeatureTest extends FeatureSpec with GivenWhenThen with ShouldMatchersForJUnit {

  @Autowired val app: WebApplication = null
  @Autowired val siteDAO: SiteDAO = null

  feature("Admin Login") {
    scenario("Correct username and password") {...}
Run Code Online (Sandbox Code Playgroud)

Dun*_*gor 26

使用TestContextManager,因为这会缓存上下文,以便它们不会在每次测试时重建.它是从类注释配置的.

@ContextConfiguration(
  locations = Array("myPackage.UnitTestSpringConfiguration"), 
  loader = classOf[AnnotationConfigContextLoader])
class AdminLoginFeatureTest extends FeatureSpec with GivenWhenThen with ShouldMatchers {

  @Autowired val app: WebApplication = null
  @Autowired val siteDAO: SiteDAO = null
  new TestContextManager(this.getClass()).prepareTestInstance(this)

  feature("Admin Login") {
    scenario("Correct username and password") {...}
  }
}
Run Code Online (Sandbox Code Playgroud)