2016-08-01 70 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); 
    } 
} 
相关问题