Ich habe einen einfachen Komponententest, der überprüft werden muss, ob meine Methode die IModel.BasicPublish
Methode aufruft. Also schrieb ich einen einfachen Unit-Test:Mock rabbitMQ IModel überprüfen Fehler
[TestMethod]
public void RequestAdded()
{
const string url = "http://localhost";
var urlBytes = Encoding.UTF8.GetBytes(url);
_proxyService.AddRequest(url);
_moqModel.Verify(x => x.BasicPublish(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<IBasicProperties>(), urlBytes), Times.Once);
}
Allerdings, wenn ich laufe ich erhalte eine Fehlermeldung: invalid verify on a non-virtual member
.
Ich dachte, das könnte nur bei konkreten Klassen auftreten, aber nicht bei einer Schnittstelle.
private Mock<IModel> _moqModel;
Irgendwelche Gedanken?
haben Sie versucht ... _moqModel.As() .Verify (x => x.BasicPublish (It.IsAny (), It.IsAny (), It.IsAny (), urlBytes), Times.Once); –
Überprüfen Sie, ob BasicPublish ein Schnittstellenmitglied oder eine Erweiterungsmethode ist. Die Verwendung von BasicPublish als Erweiterungsmethode anstelle eines tatsächlichen Members könnte diese Ausnahme verursacht haben. –
Stellen Sie [mcve] bereit, mit der das Problem reproduziert werden kann. Nicht genug Kontext in diesem Beispiel als das, was derzeit angezeigt wird, sollte diesen Fehler nicht verursachen. – Nkosi