Почему TestInitialize запускается для каждого теста в моих модульных тестах Visual Studio?

Если вы выполняете запрос и ожидаете ResultSet (по крайней мере, в этом сценарии), вы можете просто вызвать ResultSet 's getStatement() следующим образом:

ResultSet rs = pstmt.executeQuery();
String executedQuery = rs.getStatement().toString();

Переменная executedQuery будет содержать инструкцию, которая использовалась для создания ResultSet.

Теперь, я понимаю, этот вопрос довольно старый, но я надеюсь, что это кому-то поможет ..

144
задан Kyle Delaney 16 May 2019 в 19:24
поделиться

2 ответа

TestInitialize и TestCleanup запускаются до и после каждого теста, это необходимо для того, чтобы тесты связаны.

Если вы хотите запускать методы до и после ВСЕХ тестов, украсьте соответствующие методы атрибутами ClassInitialize и ClassCleanup .

Соответствующая информация из автоматически созданного теста -file в Visual Studio:

При написании тестов вы можете использовать следующие дополнительные атрибуты:

// Use ClassInitialize to run code before running the first test in the class
[ClassInitialize()]
public static void MyClassInitialize(TestContext testContext) { }

// Use ClassCleanup to run code after all tests in a class have run
[ClassCleanup()]
public static void MyClassCleanup() { }

// Use TestInitialize to run code before running each test 
[TestInitialize()]
public void MyTestInitialize() { }

// Use TestCleanup to run code after each test has run
[TestCleanup()]
public void MyTestCleanup() { }
297
ответ дан 23 November 2019 в 22:30
поделиться

это довольно стандартное поведение для наборов тестов: настройка и разборка до и после каждого теста. Философия заключается в том, что тесты не должны зависеть друг от друга. Если вам нужно другое поведение, вам, вероятно, следует использовать статические объекты, которые сохраняются между каждым тестом.

12
ответ дан 23 November 2019 в 22:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: