1
리팩토링 중에있는 기존 시스템이 있습니다.Generate() 메서드의 대리자 매개 변수에 Moq에 무엇을 제공합니까?
public class SUT
{
public delegate SaveStuff(SomeObject obj);
public void Generate(SaveStuff saver)
{
// Do stuff
var obj = new SomeObject();
saver(obj);
}
}
나는 MOQ를 사용하여 아주 새로운 해요 및 호출 시간을 '절약'의 수를 계산하려면 다음과 같이
나는 실질적으로 객체를 가지고있다.
나는 여기에 SO에 대한 예제의 숫자를 본 적이 있지만 테스트
[Test]
public void TestDelegateCall()
{
var sut = new SUT();
// Prepare SUT's State...
var callCount = 0;
sut.Generate(??);
Assert.AreEqual(callCount,2);
}
은 무엇 어디가는 방법 설정에 난처한 상황에 빠진거야? 뭐야? 난 당신이 여기 MOQ를 사용할 필요가 있음을 잘 모릅니다
컴파일 할 수 없지만 필요한 곳이 있습니다. 'SaveStuff actionCount = 대리인 (SomeObject obj) {callCount ++; }; 나를 올바른 방향으로 가리켜 주셔서 감사합니다. –
달콤한! 간단한 예제로 변경 한 후, R #을 사용하면'sut.Generate (obj => {callCount ++;}); '를 더 깔끔하게 처리 할 수있어서 다른 문제를 해결할 수있었습니다. 방금 내 이해를 크게 올렸습니다. 고맙습니다! –
줄을 줄이려면 익명 방법으로 작동하도록 내 대답을 업데이트했습니다. 그러나 이전 대리자 접근 방식을 사용하도록 코드를 업데이트했습니다. 나는 둘 다 테스트했고 모두 작동해야합니다. 당신은 심지어 당신의 마지막 코멘트에서 괄호가 필요 없다 :) –