有没有一种方法可以使用rspec有条件地分组测试?我的意思是,是否有一种方法可以说“如果这个变量是某个值,则运行这组测试。如果这个变量是另一个变量,则运行另一组测试”?
需要这样的基本示例(显然不起作用,但应该表明您想要什么)。假设要测试的用户在其他地方被定义,当前被测试的用户是@user。虽然您可能会有更好的替代方案,但也可以接受。
需要这样的基本示例(显然不起作用,但应该表明您想要什么)。假设要测试的用户在其他地方被定义,当前被测试的用户是@user。虽然您可能会有更好的替代方案,但也可以接受。
before do
login_as_user(@user) #This logs them in and brings them to the homepage to be tested
page.visit("/homepage")
end
describe "Check the user homepage"
subject {page}
it {should have_content("Welcome, #{@user.name}!")}
if(@user.role=="admin")
it {should have_link("List Users"}
end
end
请记住,我无法控制被测试的用户 - 例如,我无法即时创建用户,也不能保证存在给定的用户,并且我不知道每个用户将具有哪些角色组合。因此,我需要一些方法来表达“只有满足这些条件才运行此测试”的方式,而不是创造每个测试都可以运行的情况。
describe
/context
块,然后在每个上下文中使用before
模拟/存根用户权限? - Andrew Marshall