在向项目添加依赖项时,我无法确定应该给它们的前缀,例如"classpath"或"compile".
例如,下面的依赖项应该是编译时还是类路径?
另外,这应该在我的应用程序 build.gradle中还是在模块特定的build.gradle中?
当前的build.gradle(在应用程序级别):
apply plugin: 'java'
repositories {
mavenCentral()
}
dependencies {
compile 'org.hibernate:hibernate-core:5.0.5.Final'
compile 'mysql:mysql-connector-java:5.1.38'
}
Run Code Online (Sandbox Code Playgroud) 我收到以下错误:
Both assertEquals(Object, Object) in Assert and assertEquals(double, double) in Assert match
Run Code Online (Sandbox Code Playgroud)
对于我的Junit测试中的这行代码,请注意getScore()返回一个double:
assertEquals(2.5, person.getScore());
Run Code Online (Sandbox Code Playgroud)
这是我的断言导入:
import static org.junit.Assert.*;
Run Code Online (Sandbox Code Playgroud)
造成这种情况的原因是什么?如何解决这个问题?
我想在LOG声明后添加一个空行,以使我的日志更加分离和可读.
我该怎么做呢?
目前的声明:
LOGGER.info("Person's name is {} .", person.getName());
Run Code Online (Sandbox Code Playgroud)
请注意,我不想在每个语句之后执行此操作,仅针对某些语句.
当我停止运行我的spring-boot应用程序时,产生了两个日志文件而不是一个(一个是预期的).
我的Logback-test.xml文件中可能导致此错误的是什么?
的logback-的test.xml:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<timestamp key="myTimestamp" datePattern="yyyy-MM-dd'_'HH-mm-ss.SSS"/>
<include resource="org/springframework/boot/logging/logback/base.xml"/>
<logger name="org.springframework.web" level="INFO"/>
<!-- Send debug messages to System.out -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- By default, encoders are assigned the type ch.qos.logback.classic.encoder.PatternLayoutEncoder -->
<encoder>
<pattern>%d{HH:mm:ss.SSS} - %msg%n</pattern>
</encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>C:\path\to\my\file\myLog-${myTimestamp}.log</file>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<Pattern>%d{yyyy-MM-dd_HH:mm:ss.SSS} - %msg%n</Pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<FileNamePattern>myLog.%i{yyyy-MM-dd_HH:mm:ss.SSS}}.log</FileNamePattern>
<MinIndex>1</MinIndex>
<MaxIndex>10</MaxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>2MB</MaxFileSize>
</triggeringPolicy>
</appender>
<logger name="com.my.package" level="INFO" additivity="false">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILE" /> …Run Code Online (Sandbox Code Playgroud) 我有一个简单的Java方法,我想检查它不会抛出任何exceptions.
我已经模拟了参数等,但我不知道如何使用Mockito测试没有从方法抛出异常?
目前的测试代码:
@Test
public void testGetBalanceForPerson() {
//creating mock person
Person person1 = mock(Person.class);
when(person1.getId()).thenReturn("mockedId");
//calling method under test
myClass.getBalanceForPerson(person1);
//How to check that an exception isn't thrown?
}
Run Code Online (Sandbox Code Playgroud) 我使用Spring data了我的项目,我使用的是标准的Repository那extends CRUD Repository.
我的代码按预期工作,但是当我调用repository.save()数据库时没有改变?
我是否还需要commit在此之后调用一个以便更改数据库?或者该repository.save()方法是否应自动更改数据库?
我正在使用Mockito来测试Java应用程序中的方法.
如何测试构造函数被调用一次?
我正在尝试进行类似的验证:
verify(myClass, times(1)).doSomething(anotherObject);
Run Code Online (Sandbox Code Playgroud)
但我无法验证构造函数是否被调用,因为它没有类似于例如的方法doSomething().
我在尝试编译我的应用程序时遇到错误Intellij:
错误:无法编译Groovy文件:没有为模块定义Groovy库
"Configure Groovy SDK"当Inteli提示时,我通过选择模块解决了这个问题.我使用了库org.codehaus.groovy:groovy-all:2.4.4,然后将此库添加dependency为模块.
问题是,每次我在Intellij中重新构建我的项目或"刷新gradle项目"时,我都必须再次"配置Groovy SDK".
如何设置项目以便每次都不必重新执行此步骤?
我理解MVC模式以及Spring MVC如何实现它.
然而,怎么做Rest controller,Data Access Layer并Service Layer适合这种模式?
是吗:
Model = Database(例如Oracle/MySQL)和Repositories类
Controller = Service(商务逻辑)和休息Controller类
查看 = JSP/ FreeMarker?
java ×10
spring ×3
logging ×2
mockito ×2
assert ×1
constructor ×1
dependencies ×1
dictionary ×1
double ×1
exception ×1
gradle ×1
groovy ×1
hashmap ×1
junit ×1
line-breaks ×1
logback ×1
mocking ×1
object ×1
repository ×1
sdk ×1
service ×1
slf4j ×1
spring-boot ×1
spring-data ×1
spring-mvc ×1
unit-testing ×1