私はこのプロパティがサービスコールの戻り値から値を取得することをテストしようとしていますが、サービスコールを嘲笑することに問題があります。私は私のモックを本当のcountryServiceが呼び出されているので、エラーを取得しませ続けるRhino Mocks - プロパティ内でServiceへのメソッドコールをモックします
[TestMethod]
public void Country_should_return_Country_from_CountryService()
{
const string countryId = "US";
_address.CountryId = countryId;
var address = MockRepository.GenerateStub<Address>(_address);
var country = MockRepository.GenerateMock<ICountry>();
var countryService = MockRepository.GenerateStub<ICountryService>();
countryService.Stub(x => x.GetCountryForCountryId(countryId)).IgnoreArguments().Return(country);
Assert.AreEqual(address.Country, country);
}
:ここでは、このテストでの私の試みは
public ICountry Country
{
get
{
if (_country == null)
{
ICountryService countryService = new CountryService();
_country = countryService.GetCountryForCountryId(_address.CountryId);
}
return _country;
}
}
です:
は、ここに私の財産です。私はMsTestとRhino Mocksを使用しています。私は間違って何をしていますか?
問題は、IStateプロパティを取得するためにStateサービスを呼び出していることです。他のものが存在する可能性があります。私は、オブジェクトを取得するために、これらのオブジェクトをクラスに渡すことに頼る必要はありませんでした。 – Martin
あなたができることは、ObjectFactory.GetInstance()またはobjectFactory.GetInstance ()...を行うことを可能にするObjectFactoryクラスを利用することです。この方法では、内部的には、ObjectFactoryは、IOCコンテナを使用することも、オブジェクトを構築するメカニズムを使用することもできます。ユニットテストのためにこれらの依存関係をスワップすることができるのであれば –
saret