小编str*_*ind的帖子

将复杂模型的列表中的问题绑定到mvc应用程序

我是使用.NET MVC Web应用程序的新手.我正在使用Web应用程序的第4版.我正在开发一个页面来管理简单成员资格提供者的角色,我希望它是动态的.为了清楚我的意思,它将是这样的:

UsersInRoles

这样的事情非常简单.为此,我有一个复杂的ViewModel,例如:

public class UserInRolesModel
{
    public List<string> AllRoleNames { get; set; }
    public List<UserInRoles> UsersInRoles { get; set; }

    public UserInRolesModel()
    {
        AllRoleNames = new List<string>();
        UsersInRoles = new List<UserInRoles>();
    }

    public UserInRolesModel(List<string> allRoleNames, List<UserInRoles> usersInRoles)
    {
        AllRoleNames = allRoleNames;
        UsersInRoles = usersInRoles;
    }
}

public class UserInRoles
{
    public UserInRoles(string user, List<string> userRoles, IEnumerable<string> allRoleNames)
    {
        User = user;
        Roles = SetRoles(userRoles, allRoleNames);
    }

    private List<bool> SetRoles(List<string> userRoles, IEnumerable<string> allRoleNames)
    {
        return allRoleNames.Select(userRoles.Contains).ToList();
    }

    public string …
Run Code Online (Sandbox Code Playgroud)

c# asp.net asp.net-mvc asp.net-mvc-4

5
推荐指数
1
解决办法
287
查看次数

NSubstitute 嘲笑 Mongo IFindFluent 不起作用

我在我的存储库周围做圆顶单元测试,直到我遇到一个奇怪的错误。四处搜索看看我是否没有犯已知错误,我可以简化它并注意到我遇到了同样的错误。看起来我无法正确模拟 IFindFluent 界面,我想知道我做错了什么。本次测试:

    [Fact]
    public void Test()
    {
        var ff = Substitute.For<IFindFluent<string, string>>();
        ff.FirstOrDefaultAsync().Returns("asd");
    }
Run Code Online (Sandbox Code Playgroud)

正在返回此错误消息:

NSubstitute.Exceptions.CouldNotSetReturnDueToTypeMismatchException:无法为 IDisposable.Dispose 返回 Task`1 类型的值(预期类型为 Void)。

确保在调用替代品后调用了 Returns()(例如:mySub.SomeMethod().Returns(value)),并且您没有在 Returns() 中配置其他替代品(例如,避免这样:mySub.SomeMethod( ).返回(ConfigOtherSub()))。

如果您替换了一个类而不是一个接口,请检查对您的替代品的调用是否在虚拟/抽象成员上。不能为非虚拟/非抽象成员配置返回值。

正确使用: mySub.SomeMethod().Returns(returnValue);

可能有问题的使用:mySub.SomeMethod().Returns(ConfigOtherSub()); 而是尝试: var returnValue = ConfigOtherSub(); mySub.SomeMethod().Returns(returnValue);

在 NSubstitute.Core.ConfigureCall.CheckResultIsCompatibleWithCall(IReturn valueToReturn, ICallSpecification spec) 在 NSubstitute.Core.ConfigureCall.SetResultForLastCall(IReturn valueToReturn, MatchArgs matchArgs) 在 NSubstitute.Core.SubstitutionContext.LastCallShouldReturn(IReturn value, Match.Args) at CorporateArgs match.Action Persistence.RepositoryTests.Test()

我四处搜索,但最常见的错误并不适合这个简单的实现。任何想法为什么这不起作用?

c# unit-testing mongodb nsubstitute

1
推荐指数
1
解决办法
1600
查看次数