我不知道在ruby中是否存在regexp,表示你期望一个内部有2个整数的数组,并且每个数字不能高于10或低于0.并且这两个数字的加法不能高于我一直在寻找互联网,但我没有找到任何有用的东西。我希望你能帮助我。 Thanks¡¡
我的尝试类似于
expect(game.player.shoot).to eq([\d[0-10],\d[0-10]])
但我知道根本不工作......
答案 0 :(得分:1)
我宁愿不使用正则表达式来检查数组中的值。 你的值是字符串吗?如果是这样,它们真的应该是字符串还是先解析一下?
如果它们已经是整数,那么这应该可以解决问题:
public someClass findObject(float x, float y){
for(int i=0; i<list.size(); i++) {
if( --objects match-- ) {
selectedObject = null;
return list.get(i);
}
}
return null;
}
检查它们的总和不大于10:
expect(game.player.shoot.all? {|s| (0..10).include?(s) }).to be_true
答案 1 :(得分:0)
如果您真的想以正则表达式方式进行,我建议您使用以下内容。
它是故意分两步完成的,因为你正在测试两个不同的东西并保持断言孤立。
expect( game.player.shoot.count ).to eq(2)
expect( game.player.shoot ).to all( match(/[0-9]|10/) )
如前所述,其他答案只有在game.player.shoot为字符串的数组时才有效,否则最后一行应该更像
expect( game.player.shoot ).to all( (be >= 0).and(be <= 10) )
或
expect( game.player.shoot ).to all( satisfy{ |shoot| (0..10).include? shoot } )