Всем привет. Столкнулся со сл. проблемой. Пишу автотесты на Jscript (TestComplete). Вызываю метод класса тестируемого приложения, которому нужно передать null. Вот в этом и заключается проблема т.к. выдает "Mismatch Types". Вызываю аналогичный метод, которому null не нужен - и все работает. Проблема в том, что Jscript null и dotNet Null - разные "вещи".
Скажите плз. как сконвертировать Jscript null и dotNet Null ?
Заранее спасибо.
Конвертация Jscript null в dotNet Null
Автор ViktorUvpv, 02 фев 2010 21:01
Сообщений в теме: 3
#1
Отправлено 02 февраля 2010 - 21:01
#2
Отправлено 04 февраля 2010 - 06:45
Здравствуйте.
Самым простым решением мне кажется получение нужного 'null' из какого-нибудь метода или свойства объекта приложения. Например:
Самым простым решением мне кажется получение нужного 'null' из какого-нибудь метода или свойства объекта приложения. Например:
var dotNetNull = Sys.Process("MyProcess").AppDomain("MyProcess").dotNET.System.Exception.zctor().InnerException;
С уважением,
Дмитрий
Дмитрий
#3
Отправлено 29 марта 2010 - 13:26
Всем привет))
Да. Вызывал .Net метод, который возвращает Null, но не помогло. Обходное решение все же было найдено. Программисты перегрузили нужный мне метод без Null параметра и вызвать его удалось))
Но как Вы понимаете - это не самое оптимальное решение(
Да. Вызывал .Net метод, который возвращает Null, но не помогло. Обходное решение все же было найдено. Программисты перегрузили нужный мне метод без Null параметра и вызвать его удалось))
Но как Вы понимаете - это не самое оптимальное решение(
#4
Отправлено 14 апреля 2010 - 11:47
Сам столкнулся с такой проблемой. Долго ковырялся, потом пришел к выводу, что у неравенства [JScript null] != [.NET null] есть своя, глубокая причина . MSDN подсказал, что аналог JScript null в мире COM это VT_NULL, т.е. значение, используемое, например, в базах данных для указания того, что вообще никакого значения нет. В .NET прямым аналогом является объект System.DBNull.Value. Очевидно, что [.NET null] != [.NET System.DBNull.Value].Всем привет))
Да. Вызывал .Net метод, который возвращает Null, но не помогло. Обходное решение все же было найдено. Программисты перегрузили нужный мне метод без Null параметра и вызвать его удалось))
Но как Вы понимаете - это не самое оптимальное решение(
Но проблему я все-таки решил, просто используя непроинициализированную переменную в JScript:
[JScript] function Main() { var dotNETNull; var testedObject = Sys.Process("WindowsApplication1").WinFormsObject("Form1", "Form1"); Log.Message(testedObject.IsNull(dotNETNull)); }А вот и код моего тестового метода в классе формы:
[C#] public partial class Form1 : Form { ... public bool IsNull(object o) { return o == null; } }Все работает!
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных