Feed4Junit 의 간단 한 사용 (3) 데이터 원본 은 데이터베이스 에서
http://databene.org/feed4junit.html
Feed4Junit 테스트 데 이 터 는 데이터베이스 에서 나 옵 니 다:
Feed4JUnit 1.1.2 가 발표 되 었 습 니 다. 이 버 전 은 데이터 베 이 스 를 지원 합 니 다.
Feed4JUnit 을 이용 하여 무 작위 이지 만 검 증 된 데이터 로 연기 테스트 를 실시 하여 코드 코드 보급률 을 높이 고 매우 특수 한 데이터 구조 로 인해 발생 하 는 Bug 를 발견 할 수 있 습 니 다.또한 Feed4JUnit 을 이용 하여 등가 류 테스트 를 쉽게 정의 할 수 있다.
공식 문서:
Retrieving test data from a database
Databases can be declared and configured with a @Database annotation. When applying the annotation to a class, the defined database is available to all test methods. When annotating a method, the database is available only in this method. A basic configuration can be performed by specifying the typical JDBC connection settings: url, driver, user,password. The database declaration must specify an id, by which the database can be referred to as @Source of a method. The @Source annotation must refer to the database idand define a SQL query as selector. The number of query result columns must match the number of method parameters:
@RunWith(Feeder.class)@Database(id = "db", url = "jdbc:hsqldb:hsql://localhost:9001/f4jdb", driver = "org.hsqldb.jdbcDriver", user = "me", password = "secret")public class DatabaseTest { static DBSystem db; @Test @Source(id = "db", selector = "select id, name from dbt_person") public void test(int id, String name) { System.out.println(id + ", " + name); } }
Alternatively to the explicit database connection configuration, you can place database environment configurations in your user directory and refer to them in the test:
@Database(id = "db", environment = "f4jdb")
Read more about environment files in the DB Sanity environment files documentation.
Environment Files
An environment file carries the identifier of the environment in its name: An environment 'mydb' is configured in a properties file 'mydb.env.properties'. The environment name is the only required argument for command line execution of DB Sanity.
The related properties file first is searched in the current working directory. If it is not found there, DB Sanity looks up the environment in a central configuration directory below your user's home directory: $USER.HOME/databene/. This way you do not need to copy environment files for each DBSanity project you are using and can reuse them in other Databene applications like Benerator. You can as well specify an environment name that refers to another directory. For example, an environment name 'config/test' refers to a file'config/test.env.properties'.
In the file, you need to specify details for connecting your database with a JDBC driver:
Name
Description
db_url
JDBC URL of the database
required
db_driver
Java class name of the JDBC driver
required
db_user
user name for database login
optional
db_password
password for database login
optional
db_catalog
the (JDBC) catalog to use
optional
db_schema
the (JDBC) schema to use
optional
If you are not familiar with JDBC, you can look up driver archive names, class names and url formats in a table in the Benerator documentation: http://databene.org/databene-benerator/116-my-first-ide-and-maven-based-benerator-project.html .
@ Database 주석 은 클래스 헤더 에 있 습 니 다:
package com.easyway.feed4junit;
import static org.junit.Assert.assertEquals;
import org.databene.benerator.anno.Database;
import org.databene.benerator.anno.Source;
import org.databene.feed4junit.Feeder;
import org.junit.Test;
import org.junit.runner.RunWith;
import com.easyway.junit4.JunitSample.UserAccess;
/*
* Feed4JUnit - Get Data from Database, all test methods can use the database data
*/
@RunWith(Feeder.class)
@Database(
id = "testdb",
url = "jdbc:oracle:thin:@192.168.xxx.xxx:1521:ticket",
driver = "oracle.jdbc.driver.OracleDriver",
user = "xxx",
password = "xxx")
public class F4JfromDB {
@Test
@Source(id = "testdb", selector = "select * from test_feed4junit")
public void testAccessCheck(String userName, String pw, String expected) {
Boolean bSucess = UserAccess.accessCheck(userName.trim(), pw.trim());
assertEquals(expected.trim(), bSucess.toString());
}
}
@ Database 주석 방법:
package com.easyway.feed4junit;
import static org.junit.Assert.assertEquals;
import org.databene.benerator.anno.Database;
import org.databene.benerator.anno.Source;
import org.databene.feed4junit.Feeder;
import org.junit.Test;
import org.junit.runner.RunWith;
import com.easyway.junit4.JunitSample.UserAccess;
/*
* Feed4JUnit - Get Data from Database,
only the specified method can use the database data
*/
@RunWith(Feeder.class)
public class F4JfromDB_Method {
@Test
@Database(
id = "testdb",
url = "jdbc:oracle:thin:@192.168.45.171:1521:ticket",
driver = "oracle.jdbc.driver.OracleDriver",
user = "tbs",
password = "tbs")
@Source(id = "testdb", selector = "select * from test_feed4junit")
public void testAccessCheck(String userName, String pw, String expected) {
Boolean bSucess = UserAccess.accessCheck(userName.trim(), pw.trim());
assertEquals(expected.trim(), bSucess.toString());
}
}
@ Database 설명 은 설정 파일 기반 방식 입 니 다.
프로젝트 src 의 통계 디 렉 터 리 에서 파일 은 같은 단계 의 다음 파일 이 어야 합 니 다:
dbtest. env. properties 파일 이름 의 형식 은 Database 의 주석 속성 중 environment + "env. properties" 입 니 다.
내용 은 다음 과 같다.
db_url=jdbc:oracle:thin:@192.168.xxxx.xxx:1521:ticketdb_driver=oracle.jdbc.driver.OracleDriverdb_user=xxxx
db_password=xxxx
테스트 코드:
package com.easyway.feed4junit;
import static org.junit.Assert.assertEquals;
import org.databene.benerator.anno.Database;
import org.databene.benerator.anno.Source;
import org.databene.feed4junit.Feeder;
import org.junit.Test;
import org.junit.runner.RunWith;
import com.easyway.junit4.JunitSample.UserAccess;
/*
* Feed4JUnit - Get Data from Database,
only the specified method can use the database data
*/
@RunWith(Feeder.class)
public class F4JfromConfiguration {
@Test
@Database(id = "testdb", environment = "dbtest")
@Source(id = "testdb", selector = "select * from test_feed4junit")
public void testAccessCheck(String userName, String pw, String expected) {
Boolean bSucess = UserAccess.accessCheck(userName.trim(), pw.trim());
assertEquals(expected.trim(), bSucess.toString());
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[개발 자동화] Unitils 통합 Feed4junitFeed4JUnit 은 JUnit 의 매개 변수 화 테스트 를 간편 하 게 만 들 고 이 테스트 에 미리 정의 하거나 무 작위 테스트 데 이 터 를 제공 할 수 있 습 니 다.이 는 업무 분석 원 이 정의 한 CVS...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.