小编Ste*_*ike的帖子

确定junit的业务相关代码的执行时间的最佳做法是什么?

在eclipse-> junit-view中显示的测试执行时间取决于整个测试用例执行,包括:

  • Testdata准备
  • 执行businesslogic
  • 断言结果

我需要一个关于businesslogic的执行时间和我的businesslogic的更详细的声明.这就是我在我的测试用例中所做的:

Date lNow = new Date();
List<Geo> lAllBasisGeo = mGeoEvaluator.evaluateAllGeo(lGeoFixture.getGeo(), lAllGeo);
Date lStop = new Date();
System.out.println("Time of execution in seconds:"+((lStop.getTime()-lNow.getTime())/1000));
Run Code Online (Sandbox Code Playgroud)

好吧......我想我确定时间很尴尬.此外,我不认为有必要声明两个Date变量.

我需要更有效地编写代码的建议......

java junit

18
推荐指数
3
解决办法
2万
查看次数

javadoc工具是否识别方法内的注释?

我在我的业务逻辑中写了很多评论:

/**
 * Do some important stuff.
 * @param pDog
 * @param pAllDogTraining
 * @return
 */
@Overwrite
public Map<DogId, Dog> doEvaluateAllDog(final Dog pDog, final Collection<DogTraining> pAllDogTraining) {
final Map<DogId, Dog> lAllDogBad = new HashMap<DogId, Dog>();
final List<DogTraining> lAllDogTraining = new ArrayList<DogTraining>(pAllDogTraining);

/**
 * Remove deleted entries.
 * Detailed description
 */
removeDeletetTrainings(lAllDogTraining);

/**
 * Set the priority for each training
 *  - bad dogs
 *  - nice dogs
 *  - unknown dogs
 * Detailed description
 */
Collections.sort(lAllDogTraining, new DogTrainingComparator());

// Iterate …
Run Code Online (Sandbox Code Playgroud)

java javadoc

13
推荐指数
1
解决办法
3362
查看次数

assertEquals(Long,Integer)能成功吗?

目前我正在进行一些代码审查,我发现这行代码中断了测试用例:

assertEquals(Long.valueOf(4321), lMessage.getNumber());
Run Code Online (Sandbox Code Playgroud)

getNumber返回一个Integer也是4321.我改成了这个:

assertTrue(4321 == lSavedStoerung.getMessage());
Run Code Online (Sandbox Code Playgroud)

因为在我对equals方法的理解中,assertEquals在第一个例子中永远不能返回true.我的assertTrue所有测试用例运行正常.

或者我理解错了什么?

java junit

8
推荐指数
1
解决办法
2万
查看次数

滚动图例mpandroidchart piechart

我在的piechart帮助下实现了mpandroid library

在此处输入图片说明

如您所见,一切正常...但是右侧的饼图图例有一个小问题。

页面的高度很小。图例未完全显示。

我的图例代码:

Legend l = mChart.getLegend();
l.setPosition(LegendPosition.RIGHT_OF_CHART);
l.setXEntrySpace(7);
l.setYEntrySpace(5);
setContentView(mChart);
Run Code Online (Sandbox Code Playgroud)

是否可以选择自动增加图表的高点以使图例完整显示或至少具有滚动功能?

提前Thx

斯特凡

java android mpandroidchart

8
推荐指数
0
解决办法
479
查看次数

Eclipse为域对象和带有'm'后缀的类成员生成getter/setter

关于我的域对象中生成的getter和setter方法,我有一个小问题.我想为我的源代码使用一个通用的样式指南.该样式指南的一部分说我开始使用前缀'm'作为成员的每个类成员名称.

class User{
String mName;
List<Call> mAllCall;
List<Geo> mAllGeo;
Run Code Online (Sandbox Code Playgroud)

不幸的是,我有几个有更多成员变量的类.我遇到的问题是我是一个非常懒惰的开发人员,我在Eclipse中创建了getter和setter方法

"来源" - >"生成吸气剂和二传手".

结果是

public String getmName() {
    return mName;
}
public void setmName(String mName) {
    this.mName = mName;
}
public List<Call> getmAllCall() {
    return mAllCall;
}
public void setmAllCall(List<Call> mAllCall) {
    this.mAllCall = mAllCall;
}
public List<Geo> getAllGeo() {
    return mAllGeo;
}
public void setmAllGeo(List<Geo> mAllGeo) {
    this.mAllGeo = mAllGeo;
}
Run Code Online (Sandbox Code Playgroud)

那不是我想要的结果.我需要这个:

public String getName() {
    return mName;
}
public void setName(String pName) {
    this.mName = pName;
}
public …
Run Code Online (Sandbox Code Playgroud)

java eclipse code-generation

6
推荐指数
1
解决办法
2958
查看次数

通用for循环:有没有办法获取迭代信息?

我习惯用这样的泛型实现循环:

for (final Dog lDog : lAllDog) {
   ...
}
Run Code Online (Sandbox Code Playgroud)

对于另一个业务案例的不幸,我需要迭代的当前计数.我知道我可以通过编写类似的东西来解决这个问题:

for (int i = 0 ; i < lAllDog.length(); i++) {
   System.out.println(i);
}
Run Code Online (Sandbox Code Playgroud)

要么

int i = 0;
for (final Dog lDog : lAllDog) {
   ...
   i++;
}
Run Code Online (Sandbox Code Playgroud)

但有没有办法用我的第一个代码示例获取当前的迭代计数而不声明新的int或更改整个循环标头?

多谢

java loops

5
推荐指数
1
解决办法
1139
查看次数

在Sonar中删除此未使用的方法参数

我遇到了一个sonar问题:

删除此未使用的方法参数"messageId".

我的方法看起来像:

private static Optional<Status> getStatus(Member member, String messageId) {
    return Optional.ofNullable(member)
            .map(Member::getTraffic)
            .map(Traffic::getSymlinks)
            .map(messages -> messages
                    .stream()
                    .filter(message -> message.getMessageId().equals(messageId))
                    .findFirst()).flatMap(message -> message.map(Message::getStatus));
}
Run Code Online (Sandbox Code Playgroud)

messageId使用内部的equals所述过滤器的.这不是场.它是方法参数.

这是一个sonar错误还是我忽略了什么?我们正在使用Sonar 5.6

java sonarqube

5
推荐指数
1
解决办法
701
查看次数

用Ansible替换字符串中的字符

我有这个Ansible作为字符串:

FUBAR={{ PREFIX }}_{{ CNAME }}{{ VERSION }}
Run Code Online (Sandbox Code Playgroud)

我想用替换.串联字符串中的所有内容'',如下所示:

FUBAR={{ {{ PREFIX }}_{{ CNAME }}{{ VERSION }} | replace('.','') }}
Run Code Online (Sandbox Code Playgroud)

我收到消息:

expected token ':', got '}'
Run Code Online (Sandbox Code Playgroud)

谁能给我一个建议怎么了?

ansible

5
推荐指数
1
解决办法
7399
查看次数

Eclipse条件断点.如何检查是否发生异常?

我有这个功能:

public static FradId readFradId(DataInput pIn) throws IOException {
    Integer lMainId = Integer.valueOf(pIn.readInt());
    Integer lReferenceId = Integer.valueOf(pIn.readInt());
    String lShortname = pIn.readUTF();
    return new FradId(lMainId,lReferenceId,lShortname);
  }
Run Code Online (Sandbox Code Playgroud)

我在这一行得到了一个断点:

String lShortname = pIn.readUTF();
Run Code Online (Sandbox Code Playgroud)

我的问题是在某些情况下函数readUTF抛出一个RuntimeException.应用程序执行该功能超过100次,因此我很难找到问题.

我的问题:有没有办法用断点条件捕获该异常?我已经在简单的布尔条件下使用了这些条件,但我不知道在抛出异常时如何在该行中停止.

Thx提前

斯特凡

java eclipse conditional-breakpoint

4
推荐指数
1
解决办法
3490
查看次数

从Collection <?删除项目?扩展MyObject> UnsupportedOperationException

我的功能出了问题.该代码对我来说非常好,它在boolean属性为true时删除了一个项:

private void doRemoveAusgefallenePlaene(Collection<CarPlan> pAllCarPlan) {
for (Iterator<CarPlan> lCarPlanIterator = pAllCarPlan.iterator(); lCarPlanIterator.hasNext();) {
  CarPlan lCarPlan = lCarPlanIterator.next();
  if (!lCarPlan.isAusfall()) {
    lCarPlanIterator.remove();
  }
}
}
Run Code Online (Sandbox Code Playgroud)

我希望将函数用于类型的对象CarPlan以及ShipPlan(都实现接口Plan).

private void doRemoveAusgefallenePlaene(Collection<? extends Plan> pAllPlan) {
  for (Iterator<? extends Plan> lIterator = pAllPlan.iterator(); lPlanIterator.hasNext();) {
    Plan lPlan = lPlanIterator.next();
    if (!lPlan.isAusfall()) {
      lPlanIterator.remove();
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

现在我可以使用CollectionsType CarPlan和调用函数ShipPlan

doRemoveAusgefallenePlaene(pAllCarPlan);
doRemoveAusgefallenePlaene(pAllShipPlan);
Run Code Online (Sandbox Code Playgroud)

并且代码编译没有问题.不幸的是,在执行时会抛出UnsupportedOperationException

lPlanIterator.remove();
Run Code Online (Sandbox Code Playgroud)

我认为通过声明我明白了解错误Collection<? extends Plan>.谁知道这个问题?

- 更新 - 对于那些对一种可能的解决方案感兴趣的人:

final List<CarPlan> lAllCarPlan …
Run Code Online (Sandbox Code Playgroud)

java generics collections

3
推荐指数
1
解决办法
268
查看次数