Связанный: Написание безопасных, не нагретых свинг-тестов Вот простой upocationInterceptor , который предназначен для запуска тестов в EDT.[code]import org.fest.swing.annotation.RunsInEDT; import org.junit.jupiter.api.extension.ExtensionContext; import org.junit.jupiter.api.extension.InvocationInterceptor; import org.junit.jupiter.api.extension.ReflectiveInvocationContext; import org.junit.platform.commons.function.Try;
public class EdtExtension implements InvocationInterceptor {
@Override public void interceptTestMethod(Invocation invocation, ReflectiveInvocationContext invocationContext, ExtensionContext extensionContext) throws Throwable { if (shouldRunInEdt(invocationContext)) invokeInEdt(invocation); else invocation.proceed(); }
/** * @apiNote FEST's {@link RunsInEDT} has a default {@link Retention} and hence is not reflectively accessible. We need to check our own runtime annotation instead. */ private static boolean shouldRunInEdt(ReflectiveInvocationContext invocationContext) { Class testClass = invocationContext.getTargetClass(); Method testMethod = invocationContext.getExecutable(); return hasEdtAnnotation(testClass) || hasEdtAnnotation(testMethod); }
@Target({ElementType.METHOD, ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) public @interface EdtRun { } < /code> Все тесты проходят. < /p> Но на самом деле это плохо! Я целенаправленно включил тест с неисправным утверждением, ожидая, что он потерпит неудачу. Вопреки моим ожиданиям, AssertionError [/code] поглощается EDT, поэтому даже неисправные тесты проходят с летающими цветами.[code]import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith;
@Test @EdtRun void ifAnnotated_doesNotRunInEdt() { assertFalse(EventQueue.isDispatchThread()); } } } [/code] Как мне это переоценить и сделать мой неисправный тест на самом деле?>
Связанный: Написание безопасных, не нагретых свинг-тестов
Вот простой upocationInterceptor , который предназначен для запуска тестов в EDT. import org.fest.swing.annotation.RunsInEDT;
import org.junit.jupiter.api.extension.ExtensionContext;
import...
Связанный: Написание безопасных, не нагретых свинг-тестов
Вот простой upocationInterceptor , который предназначен для запуска тестов в EDT. import org.fest.swing.annotation.RunsInEDT;
import org.junit.jupiter.api.extension.ExtensionContext;
import...
В моей программе C# у меня есть куча файлов MP3, которые мне нужно использовать, но у них разные пробоотборники, поэтому я хочу преобразовать их в общий. Из этого примера я создал следующий код. Я хочу использовать MemoryStream вместо создания...
Я читаю файл .dat с использованием файлового соединителя. Я передаю этот поток в метод Java, который потребляет поток, разделенный с помощью данного разделителя и записывает его в TMP Dir.
Я читаю файл .dat с использованием файлового соединителя. Я передаю этот поток в метод Java, который потребляет поток, разделенный с помощью данного разделителя и записывает его в TMP Dir.