3
我對ServiceStack非常陌生,我試圖理解不同的部分是如何工作和組合在一起的。下面是簡單的服務,我玩:ServiceStack:單元測試WebServices
[Route("/welcome")]
[Route("/welcome/{Name}")]
public class Welcome
{
public string Name { get; set; }
}
public class WelcomeResponse
{
public string Result { get; set; }
}
public class WelcomeService : Service
{
public object Any(Welcome request)
{
return new WelcomeResponse { Result = "Welcome " + request.Name };
}
}
...這裏是單元測試:
[TestFixture]
public class WelcomeServiceTest
{
[Test]
public void Welcome()
{
var service = new WelcomeService();
var response = (WelcomeResponse) service.Any(new Welcome { Name = "Gonzo" });
Assert.That(response.Result == "Welcome Gonzo");
}
}
在單元測試類上面我使用的服務類爲正常C#類......當然單元測試成功了。但是如果我像這樣重寫單元測試(基於我在互聯網上找到的一個示例)呢?
[TestFixture]
public class WelcomeServiceTest
{
[Test]
public void Welcome()
{
var context = new Mock<IRequestContext>();
context.SetupGet(f => f.AbsoluteUri).Returns("localhost:8888/welcome");
var service = new WelcomeService {
RequestContext = context.Object
};
var response = (WelcomeResponse) service.Any(new Welcome { Name = "Gonzo" });
Assert.That(response.Result == "Welcome Gonzo");
}
}
結果是完全一樣的...所以我爲什麼要使用模擬的東西?
好的,非常感謝你...這個答案正是我所尋找的:-) – j3d