在factory girl中,你可以通过指定initialize_with块来覆盖构建方法,有没有办法用create方法做到这一点?
看起来当你在工厂女孩中调用create时,它会在内部调用#build,然后保存!但是,我正在使用API / gem支持的模型,然后调用#build然后保存!不起作用,但确实有持久性的概念。我该如何覆盖这些工厂的创建?它会比覆盖保存更清洁!。
答案 0 :(得分:2)
是的,您可以覆盖 Button b1,b2;
EditText ed1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
b1=(Button)findViewById(R.id.blogin);
b2=(Button)findViewById(R.id.bsignup);
ed1=(EditText)findViewById(R.id.EVPassword);
}
public void onButtonClick(View v){
if (v.getId() == R.id.blogin)
{
EditText a = (EditText)findViewById(R.id.ETmatrix);
String str = a.getText().toString();
ed1 = (EditText)findViewById(R.id.EVPassword);
String pass = ed1.getText().toString();
String password = helper.searchPass(str);
if(pass.equals(password))
{
Intent i = new Intent(MainActivity.this, HomePage.class);
i.putExtra("matrix", str);
startActivity(i);
}
else
{
Toast temp = Toast.makeText(MainActivity.this, "Matrix No. & Password does not match!!", Toast.LENGTH_SHORT);
temp.show();
}
}
if (v.getId() == R.id.bsignup )
{
Intent i = new Intent(MainActivity.this, SignUp.class);
startActivity(i);
}
}
}
。请参阅GETTING_STARTED中的Custom Methods For Persisting Objects。
to_create
您还可以定义custom "strategy",这是FactoryGirl称之为factory :different_orm_model do
to_create { |instance| instance.persist! }
end
和build
之类的内容。