我正在使用Rails项目,并注意到大多数规范文件都有类似于以下内容:
new_user = create(:user)
规范工作正常,但由于我使用的是Rubymine,我得到一个投诉说太多的论点。事实证明,spec_helper.rb中引用了另一个类,它也有一个没有参数的create()方法。在执行期间,使用FactoryGirl方法,但是当我提到将调用更改为:
时new_user = FactoryGirl.create(:user)
我收到另一位团队成员的投诉,称现有版本是速记版,并假设是FactoryGirl。在我的实现中列出FactoryGirl是更多的击键。
我仍然认为我有一点意见,因为列出FactoryGirl类确实可以清楚地说明正在使用哪种方法(更不用说安静的Rubymine),但是我们应该保留代码吗?
答案 0 :(得分:2)
RubyMine 7似乎不能正确支持FactoryGirl语法。
检查JetBrains开发人员社区中的this thread和RubyMine问题跟踪器上的the mentioned issue(您可以将该问题投票提醒以备注意)。在社区线程中,JetBrains开发人员建议禁用整个测试文件的检查 :(
答案 1 :(得分:0)
要解决在Rubymine中强调FactoryGirl(Bot)方法的烦人问题,请创建一个内容为
class RecipeMetaItem extends StatefulWidget {
final double height;
final MetaItem metaItem;
const RecipeMetaItem({Key key, this.metaItem, this.height = 200}) : super(key: key);
@override
RecipeMetaItemState createState() {
return new RecipeMetaItemState();
}
}
class RecipeMetaItemState extends State<RecipeMetaItem> {
double offset;
@override
void initState() {
super.initState();
offset = 0.0;
}
@override
Widget build(BuildContext context) {
return Padding(
padding: const EdgeInsets.only(left: 10.0, right: 10.0, bottom: 20.0),
child: GestureDetector(
onTapDown: (details) {
setState(() {
offset = -10;
});
},
onTapUp: (details) {
setState(() {
offset = 0;
});
},
child: AnimatedContainer(
duration: Duration(milliseconds: 60),
curve: Curves.easeOut,
transform: Matrix4.translationValues(0, offset, 0),
child: Column(
children: <Widget>[
Container(
height: widget.height,
decoration: new BoxDecoration(
boxShadow: [
BoxShadow(
color: Colors.black.withAlpha(40),
blurRadius: 12.5,
spreadRadius: 0.0,
)
],
borderRadius: BorderRadius.all(Radius.circular(10)),
),
child: ClipRRect(
borderRadius: BorderRadius.all(Radius.circular(10)),
child: Stack(
children: [
CachedNetworkImage(
fit: BoxFit.cover,
imageUrl: widget.metaItem.imageUrl,
fadeInDuration: Duration(milliseconds: 50),
errorWidget: (context, url, error) => new Icon(Icons.error),
),
],
),
),
),
Padding(
padding: const EdgeInsets.only(top: 8.0, left: 4.0, right: 4.0),
child: Row(
children: <Widget>[
Expanded(
child: Text(
widget.metaItem.title,
textAlign: TextAlign.left,
style: TextStyle(fontWeight: FontWeight.w700, fontSize: 17.0),
),
),
],
),
)
],
),
),
),
);
}
}
的文件:
spec/void/rubymine_stubs.rb