你应该使用类名为build()和create()Factory Girl方法做准备吗?

时间:2015-01-02 21:54:01

标签: ruby-on-rails ruby factory-bot

我正在使用Rails项目,并注意到大多数规范文件都有类似于以下内容:

new_user = create(:user)

规范工作正常,但由于我使用的是Rubymine,我得到一个投诉说太多的论点。事实证明,spec_helper.rb中引用了另一个类,它也有一个没有参数的create()方法。在执行期间,使用FactoryGirl方法,但是当我提到将调用更改为:

new_user = FactoryGirl.create(:user)

我收到另一位团队成员的投诉,称现有版本是速记版,并假设是FactoryGirl。在我的实现中列出FactoryGirl是更多的击键。

我仍然认为我有一点意见,因为列出FactoryGirl类确实可以清楚地说明正在使用哪种方法(更不用说安静的Rubymine),但是我们应该保留代码吗?

2 个答案:

答案 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