У нас есть библиотека, написанная для (и работающая на) более старой Java-виртуальной машины, в частности, 1,3 ME.
Даст ли он неточные результаты при использовании «современного» тестового жгута, работающего под виртуальной машиной 1.6 для проверки функциональности библиотеки?
Вызовы из библиотеки в классы, которые отличаются между виртуальными машинами (например, IO), являются абстрагированными, поэтому тестовая программа может предоставить свои собственные поддерживающие реализации. Теоретически мы можем протестировать логику приложения независимо от платформы, на которой оно запущено.
Есть ли конкретные области, где эта модель выходит из строя, или где разные виртуальные машины могут привести к ложным результатам тестирования? Очевидно, что при использовании библиотеки можно использовать огромные преимущества, такие как универсальные шаблоны и современные тестовые наборы, но они будут отменены, если тесты недействительны.
Чтобы объяснить причину этого: мы пишем код, который работает на устройствах с конкретными виртуальными машинами (например, телефоны Blackberry и Android), поэтому мы разрабатываем и кодируем для общих API, где это возможно. Мы можем кодировать для разумного общего подмножества Java, но когда дело доходит до тестирования, запустите бизнес-логику на наших настольных компьютерах, где у нас есть доступ к виртуальным машинам, которые предоставляют лучшие возможности для надежного тестирования (например, инфраструктуры, такие как EasyMock и т. Д.).