当我使用 ServiceStack 创建一个服务并且它们可以在实例化类并运行我的单元测试时轻松测试。
但是通过这种方法,验证器不会被触发,因为运行时绑定它们并且它们在调用服务之前被触发。
我是否必须使用正在运行的服务进行集成测试?还是有更聪明的方法`?
当我使用 ServiceStack 创建一个服务并且它们可以在实例化类并运行我的单元测试时轻松测试。
但是通过这种方法,验证器不会被触发,因为运行时绑定它们并且它们在调用服务之前被触发。
我是否必须使用正在运行的服务进行集成测试?还是有更聪明的方法`?
我们两者都做:对实际的验证器进行单元测试,然后进行完整的集成测试——这样我们就可以测试整个过滤器管道。
我们的单元测试看起来像:
[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);
}
这取决于您实际要测试的内容。您可以只为传递不同 DTO 请求对象的验证器类进行测试。您还可以通过从TestBase继承测试夹具来进行集成测试。