기본적으로 일부 데이터 그룹을 가져 와서 메소드를 실행하는 메소드를 테스트하기 위해 유닛 테스트를 작성하려고합니다. 어떤 이유로 든 내 설정이 호출되지 않습니다. 나는 디버깅을했고, 전달 된 타입과 체크 아웃 된 타입, 그리고 데이터를 체크했다. 이것이 작동하지 않는 이유는 무엇입니까?유닛 테스트 설정이 전혀 호출되지 않았습니다.
이 내 테스트에 있습니다
MyArray[] grouped = myArray
.SelectMany(x => x.AccountValues)
.GroupBy(x => x.TimeStamp)
.Select(g2 =>
new AccountValue {
Amount = g2.Sum(x => x.Amount),
TimeStamp = g2.Key })
.ToArray();
helper
.Setup(s => s.Compute(grouped, grouped.Count())
.Returns(someValue);
var result = _engine.Get(accountNumbers, startDate, endDate, code);
helper.Verify(v => v.Compute(grouped, grouped.Count()), Times.Exactly(1));
내가 다음과 같이 테스트가있어 실제 방법
public decimal? Get(long[] accountNumbers,
DateTime startDate,
DateTime endDate,
long code)
{
var accountNumbersInt = Array.ConvertAll(accountNumbers, i => (int)i);
var myArray = TransactionManager
.Get(accountNumbersInt, startDate, endDate, code);
var accountValues = GroupData(myArray);
var result= Helper.Compute(accountValues, accountValues.Count());
return result;
}
internal myArray[] GroupData(Account[] myArray)
{
var grouped = myArray
.SelectMany(x => x.AccountValues)
.GroupBy(x => x.TimeStamp)
.Select(g2 =>
new AccountValue {
Amount = g2.Sum(x => x.Amount),
TimeStamp = g2.Key })
.ToArray();
return grouped;
}
편집 : 도우미가 설정 테스트 설정에서 다음과 같이
[SetUp]
public void Setup()
{
_engine = new CalcEngine();
helper = new Mock<IHelper>();
_engine.Helper = helper.Object;
}
도우미 란 무엇입니까? 보통은 실제 테스트를 실행할 때 실행되며, 디버깅 할 때 특정 라인을 처음 실행할 때 변경해서는 안됩니다. – Gorgsenegger
도우미를 어떻게 조롱 했습니까? 이것은 중요한 정보입니다. 왜냐하면 우리가 실제로 도우미 또는 도우미 모의 호출을하는지 알 수 없기 때문입니다 - 아마도 이것은 실수입니다 – Stephan
@Stephan - 도우미 코드 –