Используя ToArgb () сопровождаемый FromArgb () не приводит к исходному цвету

PasswordSignInAsync , которые вы настроили для теста, и тот, который вызывается в тестируемом методе, имеют разные подписи.

Итак, вы настраиваете неправильный метод.

Обновить настройки

_mockSignInManager.Setup(
    x => x.PasswordSignInAsync(It.IsAny(), It.IsAny(), It.IsAny(),
        It.IsAny())).Returns(Task.FromResult(SignInResult.Success));

5
задан Jon Seigel 17 April 2010 в 23:05
поделиться

4 ответа

Из документации MSDN относительно Color.operator ==:

Этот метод сравнивает больше, чем значения ARGB цветовых структур. Это также делает сравнение некоторых флагов состояния. Если Вы хотите сравнить просто значения ARGB двух цветовых структур, сравнить их использующий метод ToArgb.

Я предполагаю, что флаги состояния отличаются.

10
ответ дан 13 December 2019 в 19:36
поделиться

Они не будут равняться тому же как Цвет. Синий не равняется Вашему цветовому объекту, он равняется чему-то сохраненному внутренне, "новый Цвет (KnownColor. Синий)"; быть точным.

1
ответ дан 13 December 2019 в 19:36
поделиться

Я ожидал бы, что это с Утверждает. AreSame из-за упаковки с типами значения, но AreEqual не должен иметь этой проблемы.

Вы могли добавить, какой язык (я принимаю C#), Ваше использование и который среда тестирования?

Что делает Assert.AreEqual(true, Color.Blue == fred); результат в?

0
ответ дан 13 December 2019 в 19:36
поделиться

Кроме того, это тоже работает, и я думаю, что это более интуитивно понятно

    [Test]
    public void ColorTransform()
    {
        var argbInt = Color.LightCyan.ToArgb();
        Color backColor = Color.FromArgb(argbInt);
        Assert.AreEqual(Color.LightCyan.A, backColor.A);
        Assert.AreEqual(Color.LightCyan.B, backColor.B);
        Assert.AreEqual(Color.LightCyan.G, backColor.G);
        Assert.AreEqual(Color.LightCyan.R, backColor.R);
    }
0
ответ дан 13 December 2019 в 19:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: