Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana cara mengisi database hanya sekali sebelum metode @Test dalam tes musim semi?

Berdasarkan jawaban Alfredos, ini adalah cara untuk memasukkan informasi basis data tanpa memanggil skrip default basis data yang disematkan. Misalnya, ini mungkin berguna ketika Anda ingin membuat DDL secara otomatis untuk Anda - setidaknya dalam pengujian.

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({"/applicationContext.xml"})
public class TestClass {

    @Autowired
    private ApplicationContext ctx;

    private JdbcTemplate template;

    @Autowired
    public void setDataSource(DataSource dataSource) {
       template = new JdbcTemplate(dataSource);
    }

    private static boolean isInitialized = false;

    @Before
    public void runOnce() {
        if (isInitialized) return;
        System.out.println("Initializing database");

        String script = "classpath:script.sql"; 
        Resource resource = ctx.getResource(script);
        JdbcTestUtils.executeSqlScript(template, resource, true);            
        isInitialized = true;
    }
}

Dengan cara ini, runOnce() metode ini dipanggil sekali dan hanya sekali untuk uji coba. Jika Anda membuat isInitialized bidang instance (non-statis), metode ini akan dipanggil sebelum setiap pengujian. Dengan cara ini Anda dapat menghapus/mengisi ulang tabel, jika perlu, sebelum setiap pengujian dijalankan.

Perhatikan bahwa ini masih merupakan solusi yang agak cepat dan kotor dan cara yang masuk akal untuk menangani database sesuai dengan jawaban Ralph.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ada Pustaka Javascript/Jquery Untuk memvalidasi pernyataan SQL?

  2. Bagaimana cara mendefinisikan batasan unik pada kolom tabel MySQL di Ruby on Rails 3?

  3. Pilih waktu antara dua kali mysql

  4. Bagaimana cara membuka MySQL saya di Raspberry Pi saya untuk Koneksi Luar / Jarak Jauh?

  5. Cara mengelompokkan rentang berkelanjutan menggunakan MySQL