며칠 동안 테스트를 작성한 다음 마지막 테스트에서 작성한 문제 중 하나를 해결하기 위해 마지막 순간에 속성을 추가해야했습니다. 그 속성을 추가 한 이후로 나는 조롱하는 프레임 워크를 작동 시키려고 노력했습니다.Rhino Mocks 왜 부동산을 모의 할 수 없습니까?
여기 내 코드입니다.
using (_mockRepository.Record())
{
_mockBattleDao.Expect(b => b.GetUnprocessedActions(gameId, round)).Return(roundResolvingItems);
_mockDao.Expect(b => b.GetMidGameCharacterStats(gameId, round)).Return(midGameCharacterStats);
_mockBattleDao.Expect(b => b.GetAmbientCharacterBuffs(_mockTiersHelper, gameId, round)).Return(new List<Buff>());
_mockBattleDao.Expect(b => b.GetActiveTriggerBuffs(_mockTiersHelper, gameId, round)).Return(triggerBuffs);
_mockBattleDao.Expect(b => b.GetActiveAmbientBuffs(_mockTiersHelper, gameId, round)).Return(new List<Buff>());
_mockDao.Expect(b => b.GetGame(gameId)).Return(new Common.Entities.Game { CompletionType = "single party down" });
_mockDao.Expect(b => b.GetAbilityById(1337)).Return(ability).Repeat.Times(3);
_mockDao.Expect(b => b.GetAbilityById(1727)).Return(attackAbility).Repeat.Times(4);
_mockTiersHelper.Expect(b => b.AddStatistic(Arg<StatAndCount>.Is.Anything)).Repeat.Times(3);
SetupResult.For(_mockTiersHelper.Round).Return(round);
}
TiersCalculationContainer container;
using (_mockRepository.Playback())
{
container = engine.ProcessTiers();
}
본인은 AAA 구문은 새로운 섹시한 레이저 알고 있지만 완전한하지만위한 대규모 테스트를하고 난 돌아가서 다시하고 싶지 않아요. 코드 실행 I이 예외 얻을 사용하여 "재생"의 닫힘 "}"에 도달
:
ExpectationViolationException
TiersCalculationContainer.get_Round을(); 예상 # 1, 실제 # 0.
테스트를 디버깅 할 때 "Round"속성이 올바르게 읽히고 내가 호출 한 것을 알기에 값을 조롱했습니다.
이 문제에 관해 온라인으로 어떤 정보도 찾을 수 없습니다. Rhino mock에서 부동산을 조롱하는 방법은 약 100 가지가 될 것 같습니다. 그들 중 누구도 일하고 있지 않으며 이것은 정말로 실망하게됩니다.
나는 이러한 모든 방법뿐만 아니라 (더)를 조롱 시도는
하나 개의 테스트에 대한 기대를 많이입니다_mockTiersHelper.Expect(b => b.Round).Return(round);
Expect.Call(_mockTiersHelper.Round).PropertyBehavior();
_mockTiersHelper.Round = round;
나는 이것이 버그 일 수 있다고 생각합니다. 나는 Rhino를 버리고 Moq로 돌아갔습니다. 10 분 그리고 나는 일어나 달리고 있었다. 이제 내 검사가 끝났어. 고마워요! – omatase