有许多方法可以使用MockIto初始化模拟对象.这些中最好的方法是什么?
1.
public class SampleBaseTestCase {
@Before public void initMocks() {
MockitoAnnotations.initMocks(this);
}
Run Code Online (Sandbox Code Playgroud)
2.
@RunWith(MockitoJUnitRunner.class)
Run Code Online (Sandbox Code Playgroud)
[编辑] 3.
mock(XXX.class);
Run Code Online (Sandbox Code Playgroud)
建议我,如果有任何其他方法比这些更好......
我有一个带有〜已知二进制序列的字节数组.我需要确认二进制序列是它应该是什么.我已经尝试.equals过了==,但都没有奏效.
byte[] array = new BigInteger("1111000011110001", 2).toByteArray();
if (new BigInteger("1111000011110001", 2).toByteArray() == array){
System.out.println("the same");
} else {
System.out.println("different'");
}
Run Code Online (Sandbox Code Playgroud) 从java中的json字符串创建一个hashmap?
我有像json字符串,{"phonetype":"N95","cat":"WP"}并希望转换为标准的Hashmap.
我该怎么做?
String s = null;
s = s + "hai";
System.out.println(s);
Run Code Online (Sandbox Code Playgroud)
输出:
nullhai
Run Code Online (Sandbox Code Playgroud)
以为这会让我觉得NPE.
什么是背后的基本逻辑
+(连接)时不投掷NPE.在我的代码中,
for(City city : country.getCities()){
// do some operations
}
Run Code Online (Sandbox Code Playgroud)
使用country.getCities()是否代价高昂?JVM是否会为每次调用维护堆栈跟踪..?
List<City> cityList = country.getCities();
for(City city : cityList){
// do some operations
}
Run Code Online (Sandbox Code Playgroud)
什么是最好的使用方法?
命令mvn sonar:sonar执行的maven生命周期阶段是什么?
虽然我看到屏幕上运行的日志,但是我发现了一个非常高的级别test, install.
考虑以下示例,
我有一个如下的maven项目
maven-root
maven-child-1
maven-child-2
Run Code Online (Sandbox Code Playgroud)
考虑以下场景,我在根级别按顺序完成它们
mvn clean install mvn sonar:sonar - 见报告mvn sonar:sonar我对测试用例的更改未反映在报告中.
mvn sonar:sonar这仍然是我的旧报告.
简而言之,我需要执行mvn clean install然后mvn sonar:sonar吗?
如果mvn sonar:sonar封面执行mvn clean install,为什么报告给我旧数字?
创建apache Abdera客户端失败
我的部分代码是
Abdera abdera = new Abdera();
AbderaClient abderaClient = new AbderaClient(abdera);
Run Code Online (Sandbox Code Playgroud)
这让我失望......
java.lang.RuntimeException: java.lang.NoSuchMethodException: org.apache.abdera.protocol.client.cache.LRUCacheFactory.<init>(org.apache.abdera.Abdera)
at org.apache.abdera.util.Discover.locate(Discover.java:37)
at org.apache.abdera.util.Discover.locate(Discover.java:21)
at org.apache.abdera.util.ServiceUtil.newInstance(ServiceUtil.java:142)
at org.apache.abdera.protocol.client.AbderaClient.initCacheFactory(AbderaClient.java:132)
at org.apache.abdera.protocol.client.AbderaClient.<init>(AbderaClient.java:108)
at org.apache.abdera.protocol.client.AbderaClient.<init>(AbderaClient.java:9
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.rules.ExpectedException$ExpectedExceptionStatement.evaluate(ExpectedException.java:168)
at org.junit.rules.RunRules.evaluate(RunRules.java:20)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:65)
Caused by: java.lang.NoSuchMethodException: org.apache.abdera.protocol.client.cache.LRUCacheFactory.<init>(org.apache.abdera.Abdera)
at java.lang.Class.getConstructor0(Class.java:2706)
at java.lang.Class.getConstructor(Class.java:1657) …Run Code Online (Sandbox Code Playgroud) 我在Intellij(Linux上的13.1.5)上使用bootRun任务运行一个spring启动应用程序,我试图在生命周期回调中关闭一个监听器线程,但是当在Intellij中停止应用程序时,我发现我的监听器线程仍然是运行和记录.
"与目标虚拟机断开连接,地址:...,传输:'socket'6:39:22 AM:外部任务执行完成'bootRun'."
"2016-03-28 06:39:59.606 INFO 7740 --- [Thread-1] ationConfigEmbeddedWebApplicationContext:关闭org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@657617e6:... 2016-03-28 06:39: 59.611 INFO 7740 --- [Thread-1] osjeaAnnotationMBeanExporter:在关闭时取消注册JMX暴露的bean"
我的问题:
对于如下定义的枚举
public enum Cars {
SWIFT("Maruti"),
DZIRE("Maruti"),
CIAZ("Maruti"),
I10("Hyundai"),
CRETA("Hyundai");
String company;
Cars(String company){
this.company = company;
}
}
Run Code Online (Sandbox Code Playgroud)
声纳错误
Define a constant instead of duplicating this literal "Maruti" 3 times.
如果我们定义静态字符串,它将无法编译
Cannot reference a field before it is defined
解决方案1:
public enum Cars {
SWIFT(CarsString.MARUTI.companyName),DZIRE("Maruti"), I10("Hyundai"), CRETA("Hyundai");
static String MARUTI = "Maruti";
String company;
Cars(String company){
this.company = company;
}
enum CarsString {
MARUTI("maruti"),
HYUNDAI("Hyundai");
String companyName;
CarsString(String companyName){
this.companyName = companyName;
}
}
}
Run Code Online (Sandbox Code Playgroud)
解决方案2:
不知道这是否是我们这样做的方式。当Cars.MARUTI未引用它时,它会出错Cannot reference …