使用FluentValidation的单元测试ServiceStack

时间:2013-06-20 09:32:26

标签: servicestack

当我使用ServiceStack创建服务时,他们可以在实例化类和运行我的单元测试时轻松测试。

但是使用这种方法,验证器不会触发,因为运行时绑定它们并且在调用serivce之前它们是triggert。

我是否必须使用正在运行的服务进行IntegrationTests?或者有更聪明的方式吗?

2 个答案:

答案 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继承测试夹具来进行集成测试。