Moq SetUp.Zurückgeben funktioniert nicht für repository-mock

Ich versuche zu verspotten, meine Repositorys Get () - Methode ein Objekt zurückgeben, um gefälschte ein update auf das Objekt, aber mein setup nicht funktioniert:

Hier ist mein Test:

[Test]
public void TestUploadDealSummaryReportUploadedExistingUpdatesSuccessfully()
{
    var dealSummary = new DealSummary {FileName = "Test"};
    _mockRepository.Setup(r => r.Get(x => x.FileName == dealSummary.FileName))
        .Returns(new DealSummary {FileName = "Test"}); //not working for some reason...

    var reportUploader = new ReportUploader(_mockUnitOfWork.Object, _mockRepository.Object);
    reportUploader.UploadDealSummaryReport(dealSummary, "", "");

    _mockRepository.Verify(r => r.Update(dealSummary));
    _mockUnitOfWork.Verify(uow => uow.Save());
}

Hier ist die Methode, die getestet wird:

public void UploadDealSummaryReport(DealSummary dealSummary, string uploadedBy, string comments)
{
    dealSummary.UploadedBy = uploadedBy;
    dealSummary.Comments = comments;

    //method should be mocked to return a deal summary but returns null
    var existingDealSummary = _repository.Get(x => x.FileName == dealSummary.FileName);
    if (existingDealSummary == null)
        _repository.Insert(dealSummary);
    else
        _repository.Update(dealSummary);

    _unitOfWork.Save();
}

Und hier ist die Fehlermeldung, die ich bekomme, wenn ich meine unit-test:

Moq.MockException :
Erwartet den Aufruf auf den mock-mindestens einmal, wurde aber nie durchgeführt: r => r.Update(.dealSummary)
Keine setups konfiguriert.

Durchgeführt Aufrufe:
IRepository1.Get(x => (x.FileName == value(FRSDashboard.Lib.Concrete.ReportUploader+<>c__DisplayClass0).dealSummary.FileName))
IRepository
1.Insert(FRSDashboard.Daten.Personen.DealSummary)
bei Moq.Mock.ThrowVerifyException(MethodCall erwartet, IEnumerable1 setups, IEnumerable1 actualCalls, Ausdruck, Ausdruck, Zeiten, Int32 callCount)
bei Moq.Mock.VerifyCalls(Interceptor targetInterceptor, MethodCall erwartet, Ausdruck, Ausdruck, Zeiten,)
bei Moq.Mock.Verify(Mock mock, Ausdruck1 expression, Times times, String failMessage)
at Moq.Mock
1.Überprüfen(Ausdruck`1 Ausdruck)
bei FRSDashboard.Test.FRSDashboard.Lib.ReportUploaderTest.TestUploadDealSummaryReportUploadedexistingupdatessuccessfully

Durch Debuggen habe ich festgestellt, dass die x => x.Mit dem Namen wird null zurückgeben, aber selbst wenn ich es im Vergleich zu null-ich bekomme immer noch eine null statt dem Angebot Zusammenfassung ich möchte zurückgegeben. Irgendwelche Ideen?

InformationsquelleAutor shuniar | 2011-08-18
Schreibe einen Kommentar