小编fgb*_*fgb的帖子

mockito中的测试失败消息:参数不同!通缉:

我在我的JUnit中测试Restful端点并在列表中获得如下所示的异常,该异常作为save方法中的参数出现,

**"Argument(s) are different! Wanted:"** 
save(
"121",
[com.domain.PP@6809cf9d, 
com.domain.PP@5925d603]
);
Actual invocation has different arguments:
save(
"121",
[com.domain.PP@5b6e23fd,  
com.domain.PP@1791fe40]
 ); 
Run Code Online (Sandbox Code Playgroud)

当我调试代码时,代码在下面的验证行中断开并引发了上述异常.看起来save方法中"testpPList"内的参数是不同的.我不知道它是如何变得不同,因为我正确地在我的JUNit中构造它们然后调用RestFul URL.

请求您的宝贵意见.谢谢.

码:

@Test
public void testSelected() throws Exception {
    mockMvc.perform(put("/endpointURL")
        .contentType(TestUtil.APPLICATION_JSON_UTF8)
        .content(TestUtil.convertObjectToJsonBytes(testObject)))
        .andExpect(status().isOk());
    verify(programServiceMock, times(1)).save(id, testpPList);
    verifyNoMoreInteractions(programServiceMock);
}
Run Code Online (Sandbox Code Playgroud)

控制器方法:

@RequestMapping(value = "/endpointURL", method = RequestMethod.PUT)
public @ResponseBody void uPP(@PathVariable String id, @RequestBody List<PPView> pPViews) {
    // Code to construct the list which is passed into the save method below
    save(id, pPList);
}
Run Code Online (Sandbox Code Playgroud)

junit mockito

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

MVC设计模式.View如何适合它?

我对模型 - 视图 - 控制器设计模式有疑问.我理解该模型包含数据.我也了解Controller(View Controllers)实现app的逻辑.例如,如果UIPicker轮选择第4行,则视图控制器可以向模型询问存储在模型阵列中的第4个对象.我很难理解"视图"是否合适.我认为该笔尖/故事板文件将被归类为"视图".但是,每个视图都需要连接一个View Controller,将所有插座连接到视图.我怎么想保持View和View Controller分开?我应该将所有插座连接到"View Class",然后在我的View Controller中引用我的"View"类来实现这些插座的逻辑吗?也许我只需要一个View和View Controller处理不同任务的例子.因为否则额外的"视图"类似乎没有意义.MVC的视图是指View类吗?我希望如何或为什么要将此View类与View Controller类分开?

model-view-controller design-patterns objective-c uiviewcontroller ios

9
推荐指数
1
解决办法
2579
查看次数

如何处理ArrayList的默认值

我正在创建一个包含我正在写的名为Person的类的应用程序.Person的一个字段是'aliases',它是一个ArrayList<String>.最终,别名将根据以下逻辑显示给用户:如果Person具有别名,则应显示为[Finch, Wren, Admin, etc...],否则UNKNOWN应显示.到目前为止,我已经尝试过三种方式之一:

  1. Person包含getAliases()简单地返回ArrayList副本的方法.调用者检查空数组以实现所需的行为.

  2. Person包含aliasesToString()可以调用以生成所需字符串的方法.

  3. ArrayList<String>别名是一种实现,而不是使用DefaultableArrayList<T>.此类扩展了ArrayList并保存了类型为T的默认值.该toString()方法被覆盖以生成所需的字符串.应用程序调用some_person.getAliases().toString()以产生所需的行为.

以下是我对选项3的实现:

public class DefaultableArrayList<T> extends ArrayList<T> {

    private static final long serialVersionUID = -6735356930885363889L; // Auto-generated
    private final T defaultElement;


    public DefaultableArrayList(T defaultElement) {
        super();
        this.defaultElement = defaultElement;
    }


    public DefaultableArrayList(Collection<? extends T> c, T defaultElement) {
        super(c);
        this.defaultElement = defaultElement;
    }


    public DefaultableArrayList(int initialCapacity, T defaultElement) {
        super(initialCapacity);
        this.defaultElement = defaultElement;
    }


    public T getDefaultElement() …
Run Code Online (Sandbox Code Playgroud)

java

7
推荐指数
1
解决办法
871
查看次数

如何使用自定义键在VIM中启动可视块选择

我知道VIM可以用Ctrl+ 开始视觉块选择V,或者有时Ctrl+ V变成粘贴,我们仍然可以用Ctrl+ Q.但我认为这个组合键并不容易按下,我可以为此分配一个自定义键吗?例如,我想q在正常模式下使用以开始视觉选择(我不使用那么多的宏录制):

map q ??? < - 我应该在这写什么?

vim

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

如何分配和处理SWT中的动态颜色?

我有时需要在SWT中动态生成颜色.以一个视图为例,该视图显示红色 - 绿色不同颜色的0-1之间的分数.可能存在具有不同颜色的其他类似视图:

class ScoreView {
    private Canvas canvas;
    private List<Item> items = new ArrayList<Item>();

    public ScoreView(Composite parent) {
        canvas = new Canvas(parent, SWT.NONE);

        canvas.addPaintListener(new PaintListener() {
            public void paintControl(PaintEvent event) {
                GC gc = event.gc;

                int x = 0;
                for(Item item:items) {
                    int shade = (int)(item.getScore() * 255.0);

                    Color color = new Color(Display.getCurrent(), shade, 255-shade, 0);
                    gc.setBackground(color);
                    gc.fillRectangle(x, 0, 50, 50);
                    x += 50;
                }
            }
        });
    }

    public void setItems(List<Item> items) {
        this.items = items;
        canvas.redraw();
    }
} …
Run Code Online (Sandbox Code Playgroud)

java swt colors

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

如何通过命令行查找设备的Android OS版本?

我有类似的要求,如果连接到系统的设备的Android sdk版本高于2.1,则它应采用sdcard路径/sdcard,如果设备的版本高于4.1,则应采用sdcard路径/mnt/sdcard

那么,如何找出通过命令行连接到系统的设备版本(无论是2.x版本的设备还是4.x版本的)?

android android-emulator

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

Kruskal的算法解释

我正在阅读wikipeida并发现Kruskal的Pseudocode如下:

KRUSKAL(G):    
    foreach v ? G.V:    
        MAKE_SET(v)    
    G.E = sort(G.E)    
    i = 0    
    while (i != |V|-1):      
        pick the next (u, v) edge from sorted list of edges G.E        
        if (FIND_SET(u) != FIND_SET(v)):          
            UNION(u, v)        
            i = i + 1 
Run Code Online (Sandbox Code Playgroud)

我不确定是什么FIND_SET(),维基百科有以下描述:

如果该边连接两个不同的树,则将其添加到森林中,将两棵树组合成一棵树.

所以我想它会检查是否连接了两棵不同的树,但这究竟意味着什么呢?

c++ algorithm greedy kruskals-algorithm

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