如何使用水豚+ minitest声明两个选择器之一

时间:2018-10-22 23:52:00

标签: ruby selenium automation capybara minitest

我目前有一个可以在下面执行此操作的def,但是我认为这效率低下,并且可能有另一种方法可以执行此操作。我知道Rspec具有or()函数来帮助它,但是水豚似乎没有这个。

class PostController extends Controller{
    public function store(Request $request)
    {
       $groupID = Post::pluck('GroupID')->last();

       $post = new Post();
       $post->GroupID = 'POST-' . $groupID + 1;
       $post->save();
       return response()->json($post);
    }
}

1 个答案:

答案 0 :(得分:1)

Capybara确实支持or,但仅当使用RSpec匹配器(expect(page).to have_selector(selector_1).or(have_selector(selector_2)))时,因为minitest没有同时评估or的支持。假设selector_1selector_2是CSS选择器,那么最简单的解决方案是使用CSS逗号并执行

assert_selector("#{selector_1}, #{selector_2}")

将检查与两个选择器之一匹配的元素。