小编Hen*_*ing的帖子

iOS13 - 导航栏标题颜色问题

我有一个带有多个 viewController 和一个 tabBarController 的故事板应用程序。到目前为止,navigationBar 的标题颜色为白色。现在我正在使用 Xcode 11 beta 6 和 iOS 13 beta 8 进行测试,标题为黑色。在装有 iOS 12 的设备上,标题仍然是白色的。我试图在故事板的导航控制器的导航栏中设置标题颜色。但这没什么区别。我还尝试在每个视图中更改标题颜色,但有时不起作用。在开始使用 iOS 13 进行测试时,我不得不更改我的代码以更改状态栏的背景颜色。代码是这样的:

self.tabBarController.title = NSLocalizedString(@"AppTitle",nil);

NSShadow *shadow = [[NSShadow alloc] init];
shadow.shadowColor = [UIColor clearColor];
shadow.shadowOffset = CGSizeMake(0, 1);

[self.navigationController.navigationBar setBarTintColor:COLOR_HEADER_LIGHT];

if (@available(iOS 13, *))
{
    UINavigationBarAppearance *navBar = [[UINavigationBarAppearance alloc] init];
    navBar.backgroundColor = COLOR_HEADER_LIGHT;
    self.navigationController.navigationBar.standardAppearance = navBar;
    self.navigationController.navigationBar.scrollEdgeAppearance = navBar;
}
else
{
    UIView *statusBar = [[[UIApplication sharedApplication] valueForKey:@"statusBarWindow"] valueForKey:@"statusBar"];
    if ([statusBar respondsToSelector:@selector(setBackgroundColor:)]) {
        statusBar.backgroundColor = COLOR_HEADER_LIGHT;
    }
} …
Run Code Online (Sandbox Code Playgroud)

uinavigationcontroller ios ios13 xcode11

8
推荐指数
2
解决办法
4135
查看次数

xunit-如何在单元测试中获取HttpContext.User.Identity

我向控制器添加了一个方法,以从中的JWT令牌获取用户ID HttpContext。在我的单元测试中,nullHttpContextnull,因此出现异常。

我该如何解决这个问题?有没有一种方法来起订量HttpContext

这是使用户进入我的基本控制器的方法

protected string GetUserId()
{
    if (HttpContext.User.Identity is ClaimsIdentity identity)
    {
        IEnumerable<Claim> claims = identity.Claims;
        return claims.ToList()[0].Value;
    }

    return "";
}
Run Code Online (Sandbox Code Playgroud)

我的一项测试如下所示

[Theory]
[MemberData(nameof(TestCreateUsergroupItemData))]
public async Task TestPostUsergroupItem(Usergroup usergroup)
{
    // Arrange
    UsergroupController controller = new UsergroupController(context, mapper);

    // Act
    var controllerResult = await controller.Post(usergroup).ConfigureAwait(false);

    // Assert
    //....
}
Run Code Online (Sandbox Code Playgroud)

c# unit-testing xunit .net-core

6
推荐指数
2
解决办法
48
查看次数

Xunit - 使用列表或对象作为参数的单元测试

我目前正在对 REST API 进行单元测试。当我有一个列表或自定义对象作为参数时,我遇到了问题。

第一个控制器方法有多个参数,包括字符串列表。我不知道如何添加列表的内联数据中的值。

private static List<string> TestData()
{
    var testcase = new List<string>();
    testcase.Add("DEV");
    testcase.Add("IT");
    return testcase;
}

[Theory]
[InlineData(0, 10, TestData, "", 3)]
public async Task TestGetPersonItems(int pageNumber, int pageSize, List<string> departments, string filterText, int resultCount)
{
    using (API_DB_Context context = new API_DB_Context(_options))
    {
        // Arrange
        //List<string> departments = new List<string>();
        //departments.Add("DEV");
        List<string> locations = new List<string>();

        PersonenController controller = new PersonenController(context, _mapper);

        // Act
        var controllerResponse = await controller.Get(pageNumber, pageSize, departments, locations, filterText);

        // Assert
        if …
Run Code Online (Sandbox Code Playgroud)

c# xunit .net-core

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

LINQ - 如何忽略其中的空列表

这是我使用 LINQ 的第一步。我有两个过滤器列表作为参数,也可以为空。如果我以这种方式执行代码,我不会从空列表中返回任何值。
如果要忽略空列表,代码必须是什么样子?

    public List<PersonDTO> GetPersons(int pageNumber, int pageSize, List<string> departments, List<string> locations, string filterText)
    {
        if (filterText == null)
        {
            filterText = "";
        }

        List<Person> personsList = _dbContext.Persons
            .Where(a => (a.firstName.ToLower().Contains(filterText.ToLower()) || a.lastName.ToLower().Contains(filterText.ToLower()))
                        && departments.Contains(a.department) 
                        && locations.Contains(a.location))
            .Skip(pageNumber * pageSize).Take(pageSize).ToList();

        return _mapper.Map<List<PersonDTO>>(personsList);
    }
Run Code Online (Sandbox Code Playgroud)

.net c# linq .net-core

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