草庐IT

java - 无法在 Spring Boot Test 1.5 中设置运行时本地服务器端口

我正在为我的应用程序使用SpringBoot1.5。在集成测试中,我想获取Web服务器的运行时端口号(注意:TestRestTemplate在我的情况下没有用。)。我尝试了几种方法,但似乎都不起作用。以下是我的方法。第一种方法@SpringBootTest(classes=TestConfig.class,webEnvironment=WebEnvironment.DEFINED_PORT)publicclassRestServiceTest{@LocalServerPortprotectedintport;在我的src/main/resources/config/applicatio

java - 如何运行在 JShell 中作为片段添加的整个 Java 文件?

我尝试安装JDK9抢先体验版本172来玩转JShell。当我尝试打开一个简单的java文件并在将其添加为代码段后执行它时,它只显示修改后的类Test并增加了代码段编号。你能帮我看看我哪里做错了吗?|WelcometoJShell--Version9-ea|Foranintroductiontype:/helpintrojshell>/openG:\kavitha\Test.javajshell>/list1:publicclassTest{publicstaticvoidmain(String[]args){inti=1;intj=2;System.out.println("Sumof

Java:相同的字符串返回不同的字节数组

我希望两个相同字符串的字节表示也相同,但情况似乎并非如此。下面是我用来测试它的代码。Stringtest1="125";Stringtest2=test1;if(test1.equals(test2)){System.out.println("Thesestringsarethesame");}byte[]array1=test1.getBytes();byte[]array2=test2.getBytes();if(array1.equals(array2)){System.out.println("Thesebytesarethesame");}else{System.out.pr

java - JUnit + Derby + Spring : drop in-memory db after every test

在我的单元测试中,我Autowiring了一些使用URL的数据源jdbc:derby:memory:mydb;create=true创建内存数据库。要删除内存中的Derby数据库,您必须连接:jdbc:derby:memory:mydb;drop=true我希望在每次测试后都发生这种情况,并从一个新的数据库开始。我如何使用Spring执行此操作? 最佳答案 HowtoshutdownDerbyin-memorydatabaseProperly给了我一个解决方案的提示:mydb.drop.url=jdbc:derby:memory:m

java - 在 gradle 的 eclipse 构建中拆分 main 和 test

今天我尝试将一个带有集成测试的项目从maven切换到gradle。一切正常,除了我在testng上遇到严重问题。该项目使用hibernate/JPA2进行数据库访问,并有几个依赖于test/resources/META-INF/persistence.xml中的持久性单元的测试。当我使用gradle运行测试套件时,一切正常。但是当我从eclipse运行xml(或任何测试类本身)时,它似乎试图使用main/resources/META-INF/persistence.xml。因为我的大部分工作都使用TDD,所以我确实需要从eclipse运行/调试测试。当我将持久性单元添加到生产persi

java - 在 JUnit 4 的@Before 中获取当前正在执行的 @Test 方法

我想在@Before中获取当前正在执行的测试方法,以便我可以获得应用于当前正在执行的方法的注释。publicclassTestCaseExample{@BeforepublicvoidsetUp(){//getcurrentmethodhere.}@Test@MyAnnotation("id")publicvoidsomeTest{//code}} 最佳答案 尝试TestName规则publicclassTestCaseExample{@RulepublicTestNametestName=newTestName();@Before

java - 扩大Java中重写方法的异常

假设我们有两个类:A类:importjava.io.IOException;publicclassA{publicvoidtest()throwsIOException{System.out.println("testinA");}}B类:importjava.io.IOException;publicclassBextendsA{@Overridepublicvoidtest()throwsException{System.out.println("testinB");}}这给出了一个编译器错误,我想知道它的原因。我可以自己得到答案,但这并不完全科学,但部分合乎逻辑。我写了ablog

java - 如何仅跳过针对 "compile"和 "install"目标而不是 "test"目标的测试?

我有这样一种情况,我们的单元测试需要很长时间才能为我们的业务域项目执行,因为它将数据库设置为已知状态,然后继续执行每个步骤。我知道这可以通过命令行上的“-Dmaven.test.skip=true”来完成,但希望仅在项目的NetBeans中配置它,如果有人可以阐明如何在IDE中进行配置,则全局是可以接受的。如何将maven2配置为仅在调用“测试”目标时执行测试?即使调用“测试”目标(fromthemavendocos),使用以下命令也会禁用测试。org.apache.maven.pluginsmaven-surefire-plugin2.6true 最佳答案

java - java在哪里找文件?

我正在尝试用java读取文件:PublicclassTest{publicstaticvoidmain(String[]args)throwsIOException{BufferedReaderf=newBufferedReader(newFileReader("test.in"));//...PrintWriterout=newPrintWriter(newBufferedWriter(newFileWriter("test.out")));//...}}1)“test.in”的位置应该在哪里?(src?bin????)2)"test.out"位于何处?

java - 当负载因子大于 1 时,如何填充 java 中的 hashMap?

我尝试创建一个包含以下详细信息的HashMap:-HashMaptest=newHashMap();test.put(1,"Value1");test.put(2,"Value2");test.put(3,"Value3");test.put(4,"Value4");test.put(5,"Value5");test.put(6,"Value6");test.put(7,"Value7");test.put(8,"Value8");test.put(9,"Value9");test.put(10,"Value10");test.put(11,"Value11");test.put(12