let someInt: Int = 3
let someOtherInt: Int = 5
Это не будет работать
print(Float(someInt/someOtherInt))
//"0.0"
Это будет
print(Float(someInt)/Float(someOtherInt))
//"0.6"
Причина в том, что в первом сценарии вы инициализируете Float с результатом целочисленного деления , что приводит к округлению результата до целого числа по характеру операции.
Второй сценарий включает в себя явное деление двух чисел с плавающей запятой , поэтому результатом также будет число с плавающей запятой и обработка десятичных чисел.
Один из больших критических анализов против Платформы Объекта был то, что по сути трудно протестировать, например, в вотуме недоверия ALT.Net это заключенный в кавычки gef.
Вот сообщение в блоге обсуждение, как обойти это и быть в состоянии протестировать Ваш код, не поражая базу данных при использовании Платформы Объекта.
, Если тестируемость является большим беспокойством, Вы могли бы хотеть посмотреть на другую платформу ORM, такую как NHibernate, по крайней мере, пока Платформа Объекта 2.0 не выпущена.
"Плотное соединение инфраструктуры персистентности к классам объекта в основном устраняет способность эффективно использовать очень трудные циклы обратной связи на бизнес-логике с автоматизированным тестированием. В его текущем состоянии классы объекта EF не могут быть эффективно единицей, протестированной независимо от базы данных.
эффективность автоматизированного поблочного тестирования поведенческих объектов является в основном вопросом того, насколько легкий механика установки данных тестирования и как быстро тесты могут быть выполнены. Используя фактическую базу данных заставит данные тестирования установить более трудоемкий, представить данные для удовлетворения реляционных ограничений, которые не релевантны тесту и делают выполнение теста порядком величины медленнее.
А team’s способность сделать эволюционный дизайн и возрастающая доставка повреждены Объектом невнимание Framework’s к фундаментальным принципам разработки программного обеспечения как Разделение Проблем".
Очевидно украденный отсюда: http://efvote.wufoo.com/forms/ado-net-entity-framework-vote-of-no-confidence/
При специфическом рассмотрении инструментов поколения DAL, Вам будет нелегко интегрировать это с TDD. Большинство dal инструментов поколения, которые я знаю также, генерирует Ваши бизнес-объекты и сильно связывает их к созданию DAL, тестирующему трудный.
можно посмотреть на ИЛИ ОТОБРАЖЕННЫЕ инструменты как nHibernate и возможно Linq к sql, которые включают "незнание постоянства", можно определить бизнес-объекты сами, и у них нет ссылок на DAL или любой другой код инфраструктуры. Это делает тестирование Вашей бизнес-логики отдельно от Вашей базы данных намного легче. Я нашел, что это также включает другой сценарий как иногда связанные клиенты намного лучше.
Я согласен, что версия 1 структуры объекта является преступлением против дизайна, и это определенно получил мой голос не уверенности. Я кредитую команду продукта EF, хотя для признания неудачи и ответа, открывая свой проектный процесс для сообщества. Следующий релиз не будет идеальным, он даже не будет готов к использованию в приложении к уровню производства, но я думаю, что они, наконец, начинают понимать, что важно для тех, кто использует, кто знает, что плохой дизайн - плохой бизнес. Это сказано ... Я все еще подозрительно. Непрерывный дизайн-время обратной связи - это новое для этих парней, и я прочитал довольно много операторов в блоге ADO.NET, который поднимает яркие красные флаги. Посмотрим, как он идет с выпуском .NET 4.0.
Они, кажется, пытаются, хотя:
прохождение по развитию, приводвому тестируемым развитием с рамкой сущности 4.0
Хотя на исходный вопрос был дан ответ, я чувствую, что могу кое-что добавить:
В настоящее время я использую Entity Framework 4.0 на сайте интрасети, который я создаю. Я могу протестировать все в моей бизнес-логике и контроллерах без подключения к базе данных, используя добавленную поддержку POCO.
Хотя POCO могут быть сгенерированы из нового шаблона t4, включенного в VS 2010, кое-что, что мне не удалось найти в VS 2010, - это шаблон t4 для генерации контекста вашего объекта (контекст объекта в основном работает как встроенная единица работы для EF и важна для сопоставления ваших EF-объектов с POCO). К счастью, Иоахим Ликке Андерсен в своем сообщении в блоге Entity Framework 4.0 Beta 1 - POCO, ObjectSet, Repository и UnitOfWork написал шаблон t4 для его генерации, и он оказался очень полезным. Если вы ищете решение с использованием EF4, которое можно тестировать без подключения к базе данных, я настоятельно рекомендую реализовать что-то похожее на его решение, которое включает в себя общий репозиторий, оболочку единиц работы и фабрику единиц работы. Это было очень полезно.
Удачи.