我試過幾種方法來單元測試REST服務,但無濟於事。單元測試ServiceStack REST webservices
其次this後,通過創建DirectServiceClient但「方法未實現」異常。
直接實例化Web服務並調用Any()方法,它工作但它擊中了數據庫。我已經在設置中初始化了連接,如下所示。但我不知道如何模擬連接對象並設置內存中的客戶對象。
_dbConnection = new OrmLiteConnectionFactory(TestConfig.ConnectionString,SqlServerDialect.Provider).OpenDbConnection();
任何人都可以提供一些關於如何在這種情況下編寫單元測試的輸入。
客服
public class CustomerService : Service
{
private readonly IDbConnection _dbConnection;
public CustomerService(IDbConnection dbConnection)
{
_dbConnection = dbConnection;
}
public object Any(CustomerRequest request)
{
if (request.id == null)
{
throw new ArgumentException("id is required");
}
var customer = _dbConnection.QueryDapper<Customer>("getCustomer",new {@id=request.id}).ToList();
return customer;
}
}
請求
[Route("/customers")]
[Route("/customer/{id}")]
public class CustomerRequest : IReturn<Customer>
{
public string id { get; set; }
}
感謝您的回覆!我打電話給存儲過程在不同的數據庫中填充DTO的,所以如何在內存數據庫中做到這一點 – Sunny 2013-03-28 00:25:19
我不認爲Sqlite支持存儲過程 - http://stackoverflow.com/questions/3335162/creating-stored-procedure-and-sqlite。而不是一個In-內存數據庫,你可以創建一個數據庫只用於測試。 – paaschpa 2013-03-28 03:17:00