当我使用ServiceStack创建服务时,他们可以在实例化类和运行我的单元测试时轻松测试。
但是使用这种方法,验证器不会触发,因为运行时绑定它们并且在调用serivce之前它们是triggert。
我是否必须使用正在运行的服务进行IntegrationTests?或者有更聪明的方式吗?
答案 0 :(得分:10)
我们同时进行:单元测试实际验证器,然后进行完全集成测试 - 这样我们就可以测试整个过滤器管道。
我们的单元测试看起来像:
[Test]
public void Validate_POST_ValidRequest_ExpectIsValidTrue()
{
var request = new MyRequest { Id =99, Name = "fr", Venue = "My Venue", Age = 9 };
var validateRunner = new MyValidator();
var result = validateRunner.Validate(request, ruleSet: "POST");
Assert.That(result.IsValid, Is.True);
}
答案 1 :(得分:3)
这取决于你想要测试的实际内容。 您可以仅针对传递不同DTO请求对象的验证器类进行测试。 您还可以通过从TestBase继承测试夹具来进行集成测试。