У меня есть запрос об использовании параметризованных тестов для модульного тестирования моих API. Теперь вместо того, чтобы строить ArrayList какJunit параметризованные тесты с использованием ввода файла
Arrays.asList(new Object[]{
{1},{2},{3}
});
Я хочу читать строки в файле один на один разделить их пространство и заполнить их в массиве. Таким образом, все будет обобщено. Может ли кто-нибудь предложить мне такой метод с примером?
Также есть способ, которым я мог бы тестироваться без объявления различных аргументов в качестве частных членов и инициализации их в конструкторе тестового блока?
EDIT: код, как спросил Дункан
@RunWith(Parameterized.class)
public class JunitTest2 {
SqlSession session;
Integer num;
Boolean expectedResult;
static BufferedInputStream buffer = null;
public JunitTest2(Integer num, Boolean expected){
this.num = num;
this.expectedResult = expected;
}
@Before
public void setup() throws IOException{
session = SessionUtil.getSqlSessionFactory(0).openSession();
SessionUtil.setSqlSession(session);
buffer = new BufferedInputStream(getClass().getResourceAsStream("input.txt"));
System.out.println("SETUP!");
}
@Test
public void test() {
assertEquals(expectedResult, num > 0);
System.out.println("TESTED!");
}
@Parameterized.Parameters
public static Collection getNum() throws IOException{
//I want my code to read input.txt line by line and feed the input in an arraylist so that it returns an equivalent of the code below
return Arrays.asList(new Object[][]{
{2, true},
{3, true},
{-1, false}
});
}
@After
public void tearDown() throws IOException{
session.close();
buffer.close();
System.out.println("TEARDOWN!");
}
}
Кроме того, моя input.txt будет выглядеть следующим образом:
2 true
3 true
-1 false
Итак, вы хотите, чтобы файл с содержимым '1 2 3' и разбором что? Можете ли вы показать нам, что вы пробовали, чтобы мы знали, где именно вы застряли? Что касается вашего второго вопроса, ответ будет отрицательным, если вы хотите использовать параметризованные тесты. –
Для второй части вы можете создавать общедоступные поля (без конструктора) и аннотировать их с помощью '@ Parameter' (см. [Этот образец] (https://gist.github.com/Regisc/7711a96d8e99fd172a71)) –
Просьба иметь Посмотрите мой код. Я новичок в Junit, так что просто приложение для начинающих. – Sourabh