小编pdu*_*can的帖子

如何使用assertj执行键和值的更深匹配

说我有这样一个类:

public class Character {
   public Character(String name){
      this.name = name;
   }
   private String name;
   public String getName() { return name; }
}
Run Code Online (Sandbox Code Playgroud)

后来,一张地图

Map<Character, Integer> characterAges = new HashMap<Character, Integer>();
characterAges.put(new Character("Frodo"), 34);
Run Code Online (Sandbox Code Playgroud)

使用assertj,测试该字符的最佳方法是什么包括"佛罗多"字符?对于这个年龄,我可以这样做:

assertThat(characterAges).hasValue(34);
Run Code Online (Sandbox Code Playgroud)

我知道我能做到:

assertThat(characterAges.keySet())
               .extracting("name")
               .contains("Frodo");
Run Code Online (Sandbox Code Playgroud)

但后来我失去了流利.我真正想要的是这样的:

assertThat(characterAges)
               .hasKey(key.extracting("name").contains("Frodo")
               .hasValue(34);
Run Code Online (Sandbox Code Playgroud)

或者甚至更好,以便我可以确保我的密钥和值匹配:

assertThat(characterAges)
               .hasEntry(key.extracting("name").contains("Frodo"), 34);
Run Code Online (Sandbox Code Playgroud)

这样的事情可能吗?

java assertj

12
推荐指数
4
解决办法
6502
查看次数

如何根据自定义代表在FakeItEasy中举办活动?

我正在测试的应用程序充满了基于自定义委托的事件,例如:

public delegate void NameChangedHandler(string name);
public event NameChanged OnNameChanged;
...
public void ChangeYourName(string newName)
{
    if( NameChanged != null )
        NameChanged(newName);
}
Run Code Online (Sandbox Code Playgroud)

我想模拟生成这些事件的类,并将这些事件提升到被测试的类中.

我知道,FakeItEasy可以使用Raise.With()的筹款活动与传统的事件签名 MyHandler(object sender, EventArgs e)MyHandler(EventArgs e),但我不知道在我的情况做.

有任何想法吗?

c# mocking fakeiteasy

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

标签 统计

assertj ×1

c# ×1

fakeiteasy ×1

java ×1

mocking ×1