Реквизит класса пуст, пока тестирую его через ферментное крепление

Проблема заключается в том, что .NET, чтобы разрешить выполнение некоторых типов неявных операций с участием float и double, необходимо либо явно указать, что должно произойти во всех сценариях, связанных с смешанными операндами, либо разрешить неявные конверсии между типами, которые должны выполняться только в одном направлении; Microsoft предпочла следовать примеру Java, позволяя направление, которое иногда способствует точности, но часто жертвует правильностью и обычно создает неприятности.

Почти во всех случаях значение double, которое ближе всего к определенному числовое значение и присвоение его float даст значение float, которое будет ближе всего к той же самой величине. Существует несколько угловых случаев, таких как значение 9 007 199 691 611 905; наилучшее представление float будет равно 9 007 200 328 482 816 (что не соответствует 536 870 911), но отличное представление double (т.е. 9 007 199 691 611 904) к float дает 9 007 199 254 740 992 (что на 536 870 913). В общем случае преобразование наилучшего double представления некоторой величины в float либо даст наилучшее возможное представление float, либо одно из двух представлений, которые по существу одинаково хороши.

Заметим, что это желательное поведение распространяется даже на крайности; например, наилучшее представление float для величины 10 ^ 308 соответствует представлению float, достигаемому путем преобразования наилучшего double представления этой величины. Аналогично, наилучшее представление float 10 ^ 309 соответствует представлению float, достигаемому путем преобразования наилучшего double представления этой величины.

К сожалению, преобразования в направлении, которое не требует явное приведение редко встречается почти точно. Преобразование наилучшего представления float значения в double редко приведет к чему-либо, особенно близкому к наилучшему double представлению этого значения, и в некоторых случаях результат может быть отключен на сотни порядков (например, преобразование Лучшее float представление от 10 ^ 40 до double даст значение, которое сравнивается больше, чем лучшее double представление 10 ^ 300.

Увы, правила преобразования - это то, что они есть, поэтому нужно жить с использованием глупых приемов и суффиксов при преобразовании значений в «безопасном» направлении и будьте осторожны с неявными приведениями в опасном направлении, которые часто дают фиктивные результаты.

0
задан skyboyer 18 January 2019 в 09:12
поделиться

1 ответ

Если вы тестируете компонент без подключения HOC. Тогда вы никогда не увидите реквизиты из mapStateToProps, поскольку импортированный вами компонент не запускает функцию соединения.

Вам нужно будет импортировать подключенный компонент, а затем обернуть его в провайдере. wrapper должен иметь все необходимое.

-

Редактировать: Если нет возможности получить доступ к подключенному компоненту, просто используйте компонент и объявите все реквизиты вручную.

Примерно так:

import { Foo } from '../foo';

const props = {
  title: 'Hello',
  subTitle: 'World'
};

describe('<Foo />', () => {
  test('should make props available', () => {
    const wrapper = mount(<Foo {...props} />);
    expect(wrapper.props).toEqual(props);
  });
});
0
ответ дан Josh Kelly 18 January 2019 в 09:12
поделиться
Другие вопросы по тегам:

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