Play 사양 테스트에 json 조명기 데이터를 삽입하는 방법은 무엇입니까?

스카이 워커

저는 Scala Play 2.2.2 응용 프로그램을 가지고 있으며 사양 테스트의 일부로 테스트를 위해 가급적 json 형식으로 일부 고정물 데이터를 삽입하고 싶습니다. 테스트를 위해 일반적인 메모리 내 H2 데이터베이스를 사용합니다. 어떻게하면 되나요? 나는 모든 문서를 검색했지만 이것에 대한 언급은 어디에도 없습니다.

나는 Global을 통해 조명기 구현의 나만의 풍미를 구축하는 것을 선호하지 않습니다. 이 권리에 해킹이 아닌 방법이 있어야합니까?

Mikesname

AFAIK는이를 수행 할 내장 된 기능이 없습니다. 레일스입니다. Play Scala가 지속성을 처리해야하는 방식에 대해 훨씬 더 많은 의견을 제시하지 않고 개발자가 무엇을 할 수 있는지 상상하기 어렵습니다 (개인적으로는 부정적인 것으로 간주합니다).

또한 테스트를 위해 H2를 사용하고 리소스 파일에 일반 SQL 픽스처를 사용하고 몇 가지 (상당히 간단한) 도우미를 사용하여 테스트 전에로드합니다.

package object helpers {

  import java.io.File
  import java.sql.CallableStatement
  import org.specs2.execute.{Result, AsResult}
  import org.specs2.mutable.Around
  import org.specs2.specification.Scope
  import play.api.db.DB
  import play.api.test.FakeApplication
  import play.api.test.Helpers._

  /**
   * Load a file containing SQL statements into the DB.
   */
  private def loadSqlResource(resource: String)(implicit app: FakeApplication) = DB.withConnection { conn =>
    val file = new File(getClass.getClassLoader.getResource(resource).toURI)
    val path = file.getAbsolutePath
    val statement: CallableStatement = conn.prepareCall(s"RUNSCRIPT FROM '$path'")
    statement.execute()
    conn.commit()
  }

  /**
   * Run a spec after loading the given resource name as SQL fixtures.
   */
  abstract class WithSqlFixtures(val resource: String, val app: FakeApplication = FakeApplication()) extends Around with Scope {
    implicit def implicitApp = app
    override def around[T: AsResult](t: => T): Result = {
      running(app) {
        loadSqlResource(resource)
        AsResult.effectively(t)
      }
    }
  }
}

그런 다음 실제 사양에서 다음과 같이 할 수 있습니다.

package models

import helpers.WithSqlFixtures
import play.api.test.PlaySpecification

class MyModelSpec extends PlaySpecification {
  "My model" should {
    "locate items correctly" in new WithSqlFixtures("model-fixtures.sql") {
      MyModel.findAll().size must beGreaterThan(0)
    }
  }
}

참고 :이 specs2 항목은 아마도 더 좋을 수 있습니다.

분명히 JSON이 정말로 필요한 경우 모델을 역 직렬화하고 데이터베이스에 유지하기 위해 추가 기계를 추가해야합니다 (종종 앱에서 이러한 작업을 수행하게되며이 경우 비교적 사소 할 수 있음).

또한 다음이 필요합니다.

  • DB 스키마를 설정하기위한 몇 가지 진화 conf/evolutions/default
  • 에볼루션 플러그인이 활성화되어 FakeApplication시작할 때 스키마를 빌드합니다.
  • 적절한 H2 DB 구성

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

데이터베이스에서 기록 된 사용자 user_id를 가져 와서 다른 테이블에 삽입하는 방법은 무엇입니까?

분류에서Dev

자동 증가 ID를 사용하여 다른 테이블의 데이터를 기존 테이블에 삽입하는 방법은 무엇입니까?

분류에서Dev

Mendix 데이터베이스에 초기 데이터를 삽입하는 방법은 무엇입니까?

분류에서Dev

다음 JSON 데이터를 테이블에 삽입하는 방법은 무엇입니까?

분류에서Dev

Java API를 사용하여 JSON을 Cassandra 데이터베이스에 삽입하는 방법은 무엇입니까?

분류에서Dev

동일한 기본 키를 사용하여 행을 삭제 한 후 테이블에 데이터를 삽입하는 방법은 무엇입니까?

분류에서Dev

쿼리 플레이버를 사용하여 JSON에 데이터를 삽입하는 방법은 무엇입니까?

분류에서Dev

일반 자바 스크립트에서 json 데이터로 양식 입력 데이터를 필터링하는 방법은 무엇입니까?

분류에서Dev

PHP, AJAX 및 JSON을 사용하여 mysqli로 데이터를 삽입하는 방법은 무엇입니까?

분류에서Dev

TSQL을 사용하여 SQL 테이블에 행을 삽입하기 위해 JSON 배열을 반복하는 방법은 무엇입니까?

분류에서Dev

데이터 양식 json 파일을 사전에 저장하는 방법은 무엇입니까? Discord.py

분류에서Dev

PDO bindParam을 사용하여 mysql에 포인트 데이터를 삽입하는 방법은 무엇입니까?

분류에서Dev

테이블보기에 중첩 된 JSON 데이터를 표시하는 방법은 무엇입니까?

분류에서Dev

Python을 사용하여 텍스트 파일의 데이터를 SQL Server 테이블에 삽입하는 방법은 무엇입니까?

분류에서Dev

LIIP 기능 테스트 (symfony 2.8)에서 조명기를 추가하는 방법은 무엇입니까?

분류에서Dev

조명기에서 구조화 된 데이터를 반환하는 올바른 방법은 무엇입니까?

분류에서Dev

JSON에서 JavaScript 함수로 데이터를 삽입하는 방법은 무엇입니까?

분류에서Dev

상호 참조 된 테이블로 데이터를 삽입하는 방법은 무엇입니까?

분류에서Dev

데이터베이스 서버 성능 테스트에 JMeter를 사용하는 방법은 무엇입니까?

분류에서Dev

jquery로 양식을 제출하고 JSON에서 데이터를 검색하는 방법은 무엇입니까?

분류에서Dev

href ID에 사용자 json 데이터베이스를 표시하는 방법은 무엇입니까?

분류에서Dev

Rails에서 JSON을 사용하여 데이터베이스를 채우는 방법은 무엇입니까?

분류에서Dev

HTTP를 사용하여 ArangoDB에 데이터를 삽입하는 방법은 무엇입니까?

분류에서Dev

d3를 사용하여 JSON 데이터에 액세스하는 방법은 무엇입니까?

분류에서Dev

JSON 데이터에서 문자열을 선택기로 사용하는 방법은 무엇입니까?

분류에서Dev

차트 라이브러리를 사용하여 고유하게 표시하기 위해 JSON 데이터를 분리하는 방법은 무엇입니까?

분류에서Dev

lynx 명령 줄을 사용하여 JSON 데이터를 게시하는 방법은 무엇입니까?

분류에서Dev

bash 및 libreoffice calc headless를 사용하여 기존 .odt 파일에 몇 행의 데이터를 삽입하는 방법은 무엇입니까?

분류에서Dev

jquery / javascript를 사용하여 json 객체에 요소를 삽입하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    데이터베이스에서 기록 된 사용자 user_id를 가져 와서 다른 테이블에 삽입하는 방법은 무엇입니까?

  2. 2

    자동 증가 ID를 사용하여 다른 테이블의 데이터를 기존 테이블에 삽입하는 방법은 무엇입니까?

  3. 3

    Mendix 데이터베이스에 초기 데이터를 삽입하는 방법은 무엇입니까?

  4. 4

    다음 JSON 데이터를 테이블에 삽입하는 방법은 무엇입니까?

  5. 5

    Java API를 사용하여 JSON을 Cassandra 데이터베이스에 삽입하는 방법은 무엇입니까?

  6. 6

    동일한 기본 키를 사용하여 행을 삭제 한 후 테이블에 데이터를 삽입하는 방법은 무엇입니까?

  7. 7

    쿼리 플레이버를 사용하여 JSON에 데이터를 삽입하는 방법은 무엇입니까?

  8. 8

    일반 자바 스크립트에서 json 데이터로 양식 입력 데이터를 필터링하는 방법은 무엇입니까?

  9. 9

    PHP, AJAX 및 JSON을 사용하여 mysqli로 데이터를 삽입하는 방법은 무엇입니까?

  10. 10

    TSQL을 사용하여 SQL 테이블에 행을 삽입하기 위해 JSON 배열을 반복하는 방법은 무엇입니까?

  11. 11

    데이터 양식 json 파일을 사전에 저장하는 방법은 무엇입니까? Discord.py

  12. 12

    PDO bindParam을 사용하여 mysql에 포인트 데이터를 삽입하는 방법은 무엇입니까?

  13. 13

    테이블보기에 중첩 된 JSON 데이터를 표시하는 방법은 무엇입니까?

  14. 14

    Python을 사용하여 텍스트 파일의 데이터를 SQL Server 테이블에 삽입하는 방법은 무엇입니까?

  15. 15

    LIIP 기능 테스트 (symfony 2.8)에서 조명기를 추가하는 방법은 무엇입니까?

  16. 16

    조명기에서 구조화 된 데이터를 반환하는 올바른 방법은 무엇입니까?

  17. 17

    JSON에서 JavaScript 함수로 데이터를 삽입하는 방법은 무엇입니까?

  18. 18

    상호 참조 된 테이블로 데이터를 삽입하는 방법은 무엇입니까?

  19. 19

    데이터베이스 서버 성능 테스트에 JMeter를 사용하는 방법은 무엇입니까?

  20. 20

    jquery로 양식을 제출하고 JSON에서 데이터를 검색하는 방법은 무엇입니까?

  21. 21

    href ID에 사용자 json 데이터베이스를 표시하는 방법은 무엇입니까?

  22. 22

    Rails에서 JSON을 사용하여 데이터베이스를 채우는 방법은 무엇입니까?

  23. 23

    HTTP를 사용하여 ArangoDB에 데이터를 삽입하는 방법은 무엇입니까?

  24. 24

    d3를 사용하여 JSON 데이터에 액세스하는 방법은 무엇입니까?

  25. 25

    JSON 데이터에서 문자열을 선택기로 사용하는 방법은 무엇입니까?

  26. 26

    차트 라이브러리를 사용하여 고유하게 표시하기 위해 JSON 데이터를 분리하는 방법은 무엇입니까?

  27. 27

    lynx 명령 줄을 사용하여 JSON 데이터를 게시하는 방법은 무엇입니까?

  28. 28

    bash 및 libreoffice calc headless를 사용하여 기존 .odt 파일에 몇 행의 데이터를 삽입하는 방법은 무엇입니까?

  29. 29

    jquery / javascript를 사용하여 json 객체에 요소를 삽입하는 방법은 무엇입니까?

뜨겁다태그

보관