В нашем веб-приложении SmartGWT мы передаем наши доменные объекты с сервера клиенту и обратно (через сериализацию GWT). Чтобы показать / отредактировать данные на стороне клиента в DynamicForm или GridList, мы должны преобразовать их в Record (или ListGridRecord ) и после редактирования обратно в объекты нашего домена.
Я хотел бы написать модульный тест для этого метода преобразования, но простая попытка в JUnit не удалась, так как записи getAttribute
и setAttribute
* Методы 1014 * реализуются с помощью JSOHelper.getAttribute
/ JSOHelper.setAttribute
, которые являются статическими методами, объявленными как native
и реализованными JSNI в JavaScript, таким образом, их можно использовать только на стороне клиента, при компиляции в JavaScript.
Мы получаем UnsatisfiedLinkError при использовании этих методов из JUnit, поскольку нативные методы там не реализованы.
Есть идеи, как я могу проверить эти классы?
Эти критические методы могут быть легко реализованы с помощью простого HashMap (или, может быть, LinkedHashMap, если важен порядок атрибутов) - на самом деле объект JavaScript - это то, что касается только части данных, а не методов. Поэтому я просто думаю о предоставлении альтернативной реализации некоторых выбранных классов SmartGWT (в основном, JSOHelper) с реализациями Java вместо JavaScript.
Но я действительно первый, у кого есть эта проблема? Я просто слишком глуп, чтобы найти существующее решение?