当我们验证的对象具有也经过验证的子类时,是否可以为fluentvalidation类编写单元测试.
举个例子:我的班级看起来像这样
public class TestModel
{
public class SubData
{
public int SubDataVal { get; set; }
}
public int ParentVal { get; set; }
public SubData Sub { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我的验证逻辑如下所示:
public class TestModelValidator : AbstractValidator<TestModel>
{
public TestModelValidator()
{
RuleFor(o => o.ParentVal).GreaterThan(0);
RuleFor(o => o.Sub.SubDataVal).GreaterThan(0);
}
}
Run Code Online (Sandbox Code Playgroud)
当我写下面的单元测试时
[Test]
public void Should_have_error_when_val_is_zero()
{
validator = new TestModelValidator();
validator.ShouldHaveValidationErrorFor(model => model.ParentVal, 0);
}
Run Code Online (Sandbox Code Playgroud)
我得到一个"System.NullReferenceException:对象引用未设置为对象的实例." 来自FluentValidation.TestHelper.ValidatorTester`2.ValidateError(T instanceToValidate)的异常
(如果我删除RuleFor(o => o.Sub.SubDataVal).GreaterThan(0);行,那么它可以工作!)
同样,如果我尝试用以下单元测试实际的子类:
[Test]
public void …Run Code Online (Sandbox Code Playgroud) 我正在尝试设置章鱼以将资源部署到 azure。
在 azure 活动目录下,我添加了一个新的应用程序注册,并生成了一个密钥并将八达通与正确的应用程序 ID、租户 ID 和密钥连接起来
该组织有多个与环境相对应的 azure 订阅,所以我注意到如果我使用“Visual Studio Professional MSDN”订阅的订阅 ID,它会工作并创建资源,但是如果我尝试使用任何其他组织订阅我收到以下错误的 ID:
Login-AzureRmAccount :提供的帐户 c0b2.......76a6 无权访问订阅 ID“f06.......2aa3”。请尝试使用不同的凭据或不同的订阅 ID 登录。
我查看了应用程序注册的所有设置,并授予它所有可用的“Windows Azure Active Directory”权限,但仍然没有运气。
我如何授予此应用程序注册的权限,以便它可以访问相关订阅?
我使用的是Vista,但与我工作在同一项目上的大多数其他开发人员仍在使用XP.我们的一些项目具有用于处理虚URL的通配符脚本映射,因此每次我在这些站点上工作时,我的IIS 7都会将一个system.webServer/handlers部分添加到web.config文件中,当其中一个开发人员更新它时IIS 5系统无法识别它们并导致以下错误:
Parser Error Message: Unrecognized configuration section 'system.webServer'
Run Code Online (Sandbox Code Playgroud)
那么是否有IIS 7设置它不能在web.config文件中存储脚本映射,或者告诉IIS 5忽略该部分?
我用Google搜索了这个,但我似乎只找到了从IIS5/6迁移到7的人的指南.