我有以下测试
[Test]
public void Attack_TargetWith3Damage_CausesAttackerToDeal3DamageToTarget()
{
var realAttacker = CreateCreature(damage: 3);
var wrappedAttacker = A.Fake<ICreature>(x => x.Wrapping(realAttacker));
var target = A.Fake<ICreature>();
wrappedAttacker.Attack(target);
A.CallTo(() => wrappedAttacker.DealDamage(target, 3)).MustHaveHappened();
}
问题是对DealDamage
方法的调用没有Attack
被注册,因为在方法内部,this
不是攻击者,因此方法调用没有被拦截。realAttacker
wrappedAttacker
我如何测试这个断言?这可以用 FakeItEasy 完成吗?不同的模拟框架是否允许我对此进行测试?