コントローラのリストアクションでユニットテストをしようとしています。ここではそれをテストするためのコードは次のとおりです。ユニットテストコントローラgrails
void testListAction()
{
ac = new AddressesController();
def org = new Organizations(viewAllPost: true);
mockForConstraintsTests(Addresses);
def a = new Addresses(firstLine:'A', secondLine:'B', thirdLine:'C', luCountry:UnitedStates, zipCode:'12345', luState:Florida, city:'jag');
assertTrue(a.validate());
mockSession['currentUserOrganizationId'] = org;
mockDomain(Addresses, [
new Addresses(firstLine:'A1', secondLine:'B', thirdLine:'C', luCountry:UnitedStates, zipCode:'12345', luState:Florida, city:'jag'),
new Addresses(firstLine:'A2', secondLine:'B2', thirdLine:'C2', luCountry:UnitedStates, zipCode:'12344', luState:Florida, city:'jag2')
]);
def model = ac.list();
assertEquals(2, model.postInstanceList.size());
}
しかし、私は、私はいつもmodel.postInstanceListがNULLであることと同じ結果が戻って取得していますし、私はそれにサイズのメソッドを呼び出すことはできませんしようとしたどんなに。私はここで間違って何をしていますか?
いくつかのポインタ:あなたのインスタンスで、それは次のようになりますので、モデルのオフあなたが好きなアクセス次に
:ユニットテストでは、経由でモデルにアクセスする必要がありますコントローラのインスタンスを作成します。あなたのテストクラスがAddressControllerTestsと呼ばれていると仮定すると、AddressControllerのインスタンスは既に 'controller'という変数で利用可能になっています。また、私はモデルのサイズをテストしないだろう、私は応答をテストするだろう; controller.response。???。コントローラーをテストすると、戻ってくる応答をテストする必要があります。 – Gregg
これらは両方とも正しいポインタです。リストの実際の内容をテストする必要がありますが、リストのサイズが正しいかどうかだけをテストしています。これは簡単なテストでなければなりません。 –