2016-08-01 18 views
0

首先,我GOOGLE了所有SO帖子,但沒有人幫助我。我在下面的主題上得到了例外。預期的模擬調用至少一次,但從未執行

[Test] 
    public void TestInv() 
    { 
     string inReference = "123"; 
     _Service.Setup(q=> q.InvoiceS(inReference)); 
     _Service.Verify(q => q.InvoiceS(inReference), Times.AtLeastOnce()); 
    } 
+1

什麼SUT?請提供[mcve] – Nkosi

回答

1

這一行

_Service.Verify(q => q.InvoiceS(inReference), Times.AtLeastOnce()); 

你是在嘲笑那個InvoiceS方法應該被調用一次設定的期望。它失敗了,因爲你的SUT(類,你正在測試)不會在所有調用這個方法:如果你通過嘲笑對象ServiceProxy

沒有調用執行

還要驗證。它應該是這樣的:

ServiceProxy= new ServiceProxy(_ServiceMock.Object); 

與實現

而且實現

public class ServiceProxy 
{ 
    private IService service; // assume you are mocking this interface 

    public ServiceProxy(IService service) // constructor injection 
    { 
     this.service = service; 
    } 

    public string InvoiceS(string s) 
    { 
     return service.InvoiceS(s); 
    } 
} 
相關問題