大家好,我在spec / controller文件夹中的不同文件中对API进行了大量的控制器测试。对于每个规格我都有
before do
authenticate_user(user, role)
end
这是耗时的,因为我必须为每个测试创建一个用户和一个角色。我想在上层有同样的帮助程序,以便在相同的身份验证下执行我的所有控制器测试。
有没有人知道应该由谁来实现这个目标?
这也是一个选择,但用户下面有很多逻辑可能很困难且耗时。
感谢
答案 0 :(得分:0)
您可以使用//define data pull for subnets with a depends on the resource for creating the subnets so there will be subnets present before data is calculated
data "aws_subnet" "dmz_for_nat" {
depends_on = ["aws_subnet.subnets"]
filter {
name = "tag:Name"
values = ["${var.domain_short_name}-DMZ-B"]
}
}
//Then reference that data for the subnet ID
resource "aws_nat_gateway" "nat" {
allocation_id = "${aws_eip.nat_gw.id}"
subnet_id = "${data.aws_subnet.dmz_for_nat.id}"
tags = "${merge(var.common_tags, map("Name", "${var.vpc_name_prefix}${var.domain_short_name}${var.region_short_name}-NAT" ))}"
depends_on = ["aws_internet_gateway.igw","aws_subnet.subnets"]
}
或before(:suite)
来阻止对此方法的多次调用,例如
before(:all)
您也可以在before(:suite) do
authenticate_user(user, role)
end
找到它,例如:
spec/support/sign_in_helper.rb
并在module SignInHelper
def sign_in
before(:suite) do
authenticate_user(user, role)
end
end
end
使用它,例如:
spec_helper
之后,您将能够像顶级控制器规范中的宏一样使用它。