当我使用ServiceStack创建服务时,只需实例化该类并运行我的单元测试,他们可以轻松测试。使用FluentValidation进行单元测试ServiceStack
但是使用这种方法,验证器不会触发,因为运行时会绑定它们,并且在调用serivce之前它们是triggert。
我是否需要使用正在运行的服务进行IntegrationTests?或者有更聪明的方法吗?
当我使用ServiceStack创建服务时,只需实例化该类并运行我的单元测试,他们可以轻松测试。使用FluentValidation进行单元测试ServiceStack
但是使用这种方法,验证器不会触发,因为运行时会绑定它们,并且在调用serivce之前它们是triggert。
我是否需要使用正在运行的服务进行IntegrationTests?或者有更聪明的方法吗?
这取决于你想要测试的是什么。 您可以为您的验证器类传递不同的DTO请求对象进行测试。 您也可以通过从TestBase继承您的测试夹具进行集成测试。
我们这样做:单元测试实际的验证器,然后再进行全集成测试 - 因此我们可以测试整个过滤器管线。
我们的单元测试看起来有些东西一样:
[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);
}