Вопросы с тегами [unit-testing]

0

голосов
0

ответ
9

Просмотры

Karma, Angular 7, & FontAwesome issue Can't bind to 'icon' since it isn't a known property of 'fa-icon'

Can't bind to 'icon' since it isn't a known property of 'fa-icon'. When trying to run this test in people.component.spec.ts import { async, ComponentFixture, TestBed } from "@angular/core/testing"; import { PeopleComponent } from "./people.component"; describe("PeopleComponent Unit Test", () => { let component: PeopleComponent; let fixture: ComponentFixture; beforeEach(async(() => { TestBed.configureTestingModule({ declarations: [PeopleComponent] }) .compileComponents(); })); beforeEach(() => { fixture = TestBed.createComponent(PeopleComponent); component = fixture.componentInstance; fixture.detectChanges(); }); it("should create", () => { expect(component).toBeTruthy(); }); ; }) The runner shows this error: Failed: Template parse errors: Can't bind to 'icon' since it isn't a known property of 'fa-icon'. If 'fa-icon' is an Angular component and it has 'icon' input, then verify that it is part of this module. If 'fa-icon' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas' of this component to suppress this message. To allow any property add 'NO_ERRORS_SCHEMA' to the '@NgModule.schemas' of this component. This is the HTML causing the issue. I've tried to import FontAwesomeModule and FaIcon on test side and add to TestBed configuration's imports statement. I've tried to ensure the component side has the imports too. Nothing seems to work.
John Peters
1

голосов
3

ответ
45

Просмотры

Отношения между модульного тестирования и впритык (интеграции как таковой), следуя BDD

Мой вопрос также связан с, кто что делает в типичном BDD. Мое понимание, владелец продукта приходит с User Story (может или не может в Огурец), QA пишет сценарии для впритык тестирования (в художественных файлах), Dev пишет код (как и где, делает он следовать BDD, а также ?). На данный момент, если Dev пишет автоматизированное модульное тестирование, может ли это быть использовано в QA для впритык или они могут быть абсолютно разные? Мой вопрос заключается в том, как рычаги Dev и QA работы друг друга с точки зрения кодирования во время следующих BDD. Я не уверен, как соединить точки. Давайте рассмотрим пример приложения на основе JAVA и QA уже использует Огурцы с Selenium WebDriver для автоматизированного тестирования.
Anup
1

голосов
1

ответ
45

Просмотры

Как я могу издеваться простой метод с использованием рамки MOq?

Скажем Я простой метод, который проверяет, является ли переданный номер Даже и возвращает логическое значение. Я новичок в насмешливый и попробовать. Как я могу издеваться этот метод с использованием рамки MOq? общественный BOOL результата ISeven (целое х) {BOOL = (х% 2 == 0)? правда, ложь; возвращать результат; }
Tim Smith
-1

голосов
0

ответ
13

Просмотры

модульное тестирование JdbcTemplate Mockito

Я пытаюсь выполнить модульное тестирование и написать тест для jdbctemplate.query. Мне нужен охват коды для ниже методы. Код: `общественный Список UserInfo (конечная Long RunID) {jdbcTemplate.setFetchSize (10); Список USERLIST = jdbcTemplate.query (кон -> con.prepareStatement (GET_USER_INFO), (RS, RowNum) -> {Строка UserName = rs.getString ( "имя пользователя"); Строка shoppingItems = rs.getString ( "shopingItems"); Long shoppingid = rs.getLong ( "shoppingid"); пользователя = новый пользователь (); user.setCmts (Username); user.setNodeid (shoppingItems); user.setNodename (shoppingid); user.setRunId (RunID); возвращение пользователя; }); вернуться USERLIST; } `Я написал тест, как показано ниже, но работает тест«охват, как JUnit»не показывает мне никакого покрытия кода для метода, который находится внутри (RS, RowNum) -> {Test:` @InjectMocks частное OracleRepository oracleRepository; @Mock личное JdbcTemplate JdbcTemplate; @Mock частные ResultSet RS; @Mock частного соединения подключения; @Mock личное PreparedStatement STMT; @Mock личное RowMapper rowMapper; @Test общественного недействительный UserInfoTest () бросает SQLException {String, имя пользователя = "Джо"; Строка shoppingItems = "3"; длинное shoppingId = 1123456778; длинный RunID = 2; Список listUser = новый ArrayList (); . Mockito.when (rs.getString ( "CMTS")) thenReturn (CMTS); Mockito.when (rs.getString ( "узел")) thenReturn (узел). Mockito.when (rs.getLong ( "NodeID")) thenReturn (NodeID). Пользователь пользователя = новый пользователь (); user.setUserName (имя пользователя); user.setShoppingItems (shoppingItems); user.setShoppingId (shoppingId); user.setRunId (RunID); listUser.add (пользователь); Mockito.when (connection.prepareStatement (Mockito.any (String.class))) thenReturn (STMT). Mockito.when (rowMapper.mapRow (Mockito.any (ResultSet.class), Mockito.any (Integer.class))) thenReturn (пользователь). Mockito.when (jdbcTemplate.query (Mockito.anyString (), Mockito.any (RowMapper.class))) thenReturn (listUser). список List = oracleRepository.UserInfo (RunID); } `Как мне решить эту проблему? thenReturn (STMT); Mockito.when (rowMapper.mapRow (Mockito.any (ResultSet.class), Mockito.any (Integer.class))) thenReturn (пользователь). Mockito.when (jdbcTemplate.query (Mockito.anyString (), Mockito.any (RowMapper.class))) thenReturn (listUser). список List = oracleRepository.UserInfo (RunID); } `Как мне решить эту проблему? thenReturn (STMT); Mockito.when (rowMapper.mapRow (Mockito.any (ResultSet.class), Mockito.any (Integer.class))) thenReturn (пользователь). Mockito.when (jdbcTemplate.query (Mockito.anyString (), Mockito.any (RowMapper.class))) thenReturn (listUser). список List = oracleRepository.UserInfo (RunID); } `Как мне решить эту проблему?
joe
1

голосов
1

ответ
275

Просмотры

Как настроить автономный контроллер только один раз перед всеми тестовыми в Spring ботинке?

Я пишу тесты для контроллера. Я насмешливо слой службы и с использованием автономной установки для контроллера отдыха. ProductSupplierControllerUnitTest.java общественного класса ProductSupplierControllerUnitTest {@Mock личное ProductSupplierService productSupplierService; @InjectMocks частный ProductSupplierRestController productSupplierRestController; частный MockMvc mockMvc; @Before общественной пустоты нАлАдкА () {MockitoAnnotations.initMocks (это); mockMvc = MockMvcBuilders.standaloneSetup (productSupplierRestController) .setControllerAdvice (новый ServiceExceptionHandler ()) построить (). } @Test общественный недействительный productNotFound () бросает исключение {Длинное incorrectProductId = 2L; Mockito.when (productSupplierService.getProductSuppliers (incorrectProductId, tenantId)). thenThrow (новый EntityNotFoundException (Product.class, String.valueOf (incorrectProductId))); RequestBuilder requestBuilder = MockMvcRequestBuilders.get (prepareRequestUrl (incorrectProductId)) .requestAttr (TENANT_ID, tenantId) .contentType (MediaType.APPLICATION_JSON_UTF8); mockMvc.perform (requestBuilder) .andExpect (статус (). isNotFound ()) .andExpect (содержание (). CONTENTTYPE (MediaType.APPLICATION_JSON_UTF8)). andExpect (jsonPath ( "$. сообщение", является (string.Format ( "Продукт не был найден для параметра (ов)% S», incorrectProductId)))); . Mockito.verify (productSupplierService, раз (1)) getProductSuppliers (incorrectProductId, tenantId); Mockito.verifyNoMoreInteractions (productSupplierService);
Harshit
1

голосов
0

ответ
385

Просмотры

Running ng test with different test entry point

Есть в любом случае для запуска нг теста с другим тестом точкой входа на один указанном в .angular-cli.json? https://github.com/angular/angular-cli/issues/8579#issuecomment-346313383 обеспечивает решение для увеличения восстановления раз при использовании ленивых загруженных кусков. Но я боюсь, что разбивая испытания на куски может вызвать некоторые тесты, которые будут пропущены. В идеале я бы два файла: test.ts, test.tmp.ts с test.ts, содержащим: Const контекста = require.context ( './', правда, /\.spec\.ts$/); в то время как test.tmp.ts имеет: Const контекст = require.context ( './ приложение / some_module /', правда, /\.spec\.ts$/); Таким образом, при разработке, я могу запустить что-то вроде испытания нг --entry-точечный = test.tmp.ts. В идеале test.tmp.ts будет git.ignored. На данный момент, его можно назвать тест нг --config = different_karma.conf.js, чтобы указать другой karma.conf.js, и в karma.conf.js вы можете изменить ссылку на test.ts в пределах этого. Однако, это не успешно запустить тесты, если я не изменить apps.0.test точки входа в угловом-cli.json к test.tmp.ts. Ошибки я получаю: Uncaught SyntaxError: Неожиданное строка в SRC / test.tmp.ts: 3 Одно из решений заключается в создании другого приложения в пределах .angular-cli.json, который является копией первого с другой точкой входа, и вызов нг тест -app, но тогда вы должны поддерживать две различные конфиги приложения. Я могу изменить test.ts непосредственно каждый раз, но возможно, что может получить совершено. Edit: https://stackoverflow.com/a/43669082/5464931 создает впечатление, что изменение углового-cli.json не необходимое, но я не могу получить, чтобы работать. если я не изменить apps.0.test точки входа в угловом-cli.json к test.tmp.ts. Ошибки я получаю: Uncaught SyntaxError: Неожиданное строка в SRC / test.tmp.ts: 3 Одно из решений заключается в создании другого приложения в пределах .angular-cli.json, который является копией первого с другой точкой входа, и вызов нг тест -app, но тогда вы должны поддерживать две различные конфиги приложения. Я могу изменить test.ts непосредственно каждый раз, но возможно, что может получить совершено. Edit: https://stackoverflow.com/a/43669082/5464931 создает впечатление, что изменение углового-cli.json не необходимое, но я не могу получить, чтобы работать. если я не изменить apps.0.test точки входа в угловом-cli.json к test.tmp.ts. Ошибки я получаю: Uncaught SyntaxError: Неожиданное строка в SRC / test.tmp.ts: 3 Одно из решений заключается в создании другого приложения в пределах .angular-cli.json, который является копией первого с другой точкой входа, и вызов нг тест -app, но тогда вы должны поддерживать две различные конфиги приложения. Я могу изменить test.ts непосредственно каждый раз, но возможно, что может получить совершено. Edit: https://stackoverflow.com/a/43669082/5464931 создает впечатление, что изменение углового-cli.json не необходимое, но я не могу получить, чтобы работать. JSON, который является копией первого с другой точкой входа, и вызов нг тест -app, но тогда вы должны поддерживать две различные конфиги приложения. Я могу изменить test.ts непосредственно каждый раз, но возможно, что может получить совершено. Edit: https://stackoverflow.com/a/43669082/5464931 создает впечатление, что изменение углового-cli.json не необходимое, но я не могу получить, чтобы работать. JSON, который является копией первого с другой точкой входа, и вызов нг тест -app, но тогда вы должны поддерживать две различные конфиги приложения. Я могу изменить test.ts непосредственно каждый раз, но возможно, что может получить совершено. Edit: https://stackoverflow.com/a/43669082/5464931 создает впечатление, что изменение углового-cli.json не необходимое, но я не могу получить, чтобы работать.
Dulitha Ranatunga
1

голосов
1

ответ
95

Просмотры

Угловые и Rxjs: написание модульного тестирования для фильтрации на Subject

У меня есть метод в угловой службе, как показано ниже, но я не знаю, как написать модульное тестирование для этой функции. Кто-нибудь может мне с этим помочь ? Спасибо сообщение $: Тема = новый субъект () GetMessage (канал: строка): Наблюдаемое {вернуть this.message $ .asObservable () .filter (м => m.channel === канал) .map (т => т .данные) }
Anh Pham
1

голосов
0

ответ
509

Просмотры

Cobertura не работает с Java 9

Я использую Java 8, теперь пытается перейти на Java 9. Большинство вещей работает за исключением генерации блока тестовых данных отчета, я использую Cobertura. С Java 9 Я получаю следующее сообщение об ошибке, кажется, Cobertura еще ссылки tools.jar, который удаляется из Java 9. Не удалось выполнить задачу на *****: Не удалось разрешить зависимости для *****: абв: баночка: 0,0 0,1: не удалось найти артефакт com.sun: инструменты: баночку: 0 в указанном пути C: \ Program Files \ Java \ JDK-9.0.1 /../ Библиотека / tools.jar -> [Помощь 1] Может кто-нибудь сказать мне, как генерировать блок тестовых примеров сообщить с Java 9? Могу ли я продолжать использовать Cobertura или переключиться на какой-либо другой инструмент для модульного тестирования случаев?
Atul Sureka
1

голосов
1

ответ
49

Просмотры

Как скомпилировать тест-только код с WebPack

У меня есть несколько частных методов, которые я хочу писать тесты для. Однако, поскольку эти частные методы, они не экспортируются. В этой статье показано, как можно использовать хрюкать, чтобы обернуть код в комментариях и этот код будет исключен из компиляции, если вы компиляции для производства. Есть ли нечто подобное для Webpack? В основном я хочу что-то, так что я могу сделать что-то вроде / * тест-только * / экспорт {_myPrivateMethod}; / * Конец тест-только * / И этот код будет исключен из окончательной компиляции, но будет включен при выполнении тестов.
Kousha
1

голосов
0

ответ
117

Просмотры

Как настроить карму НЕ перезапустить браузер, когда он закрыт?

Я использую следующую команду для запуска своих модульных тестов в своем роде режим «отладка» (где --debug является пользовательским ключом я добавил для своих собственных целей). карма начать ./.config/karma.conf.js --browsers = Chrome --debug Команда работает отлично - он запускает тесты и сохраняет это экземпляр браузера Chrome открытым на неопределенное время. Однако, когда я пытаюсь убить браузер, закрывая его, тест бегун перезапускает его (до 2-х раз). 05 01 2018 13: 00: 56,024: ERROR [гранатомет]: Chrome разбился. 05 01 2018 13: 00: 56,024: ERROR [гранатомет]: Хром стандартный вывод: 05 01 2018 13: 00: 56,024: ERROR [гранатомет]: Хром STDERR: 05 01 2018 13: 00: 56,256: INFO [гранатомет]: Попытка Chrome начать снова (1/2). Есть ли способ, чтобы инструктировать Карма НЕ перезапустить Chrome, когда он закрыт / разбился?
Igor Soloydenko
1

голосов
0

ответ
42

Просмотры

MSTest Покрытие кода с DataRows не работает

У меня есть простой способ конвертировать из одного перечисления в другой. общественности статической ServiceStatus FromTheirState (TheirState fromState) {MyStatus NEWSTATUS; переключатель (fromState) {случай TheirState.Online: NEWSTATUS = MyStatus.Online; перерыв; Случай TheirState.Intermittent: NEWSTATUS = MyStatus.Intermittent; перерыв; случай TheirState.Offline: по умолчанию: NEWSTATUS = MyStatus.Offline; перерыв; } Вернуть NEWSTATUS; } Для модульного тестирования этого, я делаю следующее [TestMethod] [DataRow (TheirState.Online, MyStatus.Online)] [DataRow (TheirState.Offline, MyStatus.Offline)] [DataRow (TheirState.Intermittent, MyStatus.Intermittent)] общественного недействительными TestFromTheirState (TheirState состояние, MyStatus expectedStatus) {MyStatus actualStatus = StatusConverter.FromTheirState (состояние); Assert.AreEqual (expectedStatus, actualStatus); } Хотя результаты испытаний показывают, что все 3 тесты пройдены успешно (см ниже), охват кода говорит «Интернет» дело только один покрыты. Два других случая конверсионные не укрыты, выделенное. Есть идеи? Является ли это ошибка? Иерархия не покрывается (блоки) Покрытие (% блоков) не покрывается (% блоков) Покрытие (блоки) FromTheirState (TheirState) 2 66.67% 33.33% 4 Результаты испытаний: Наименование теста: Тест TestFromTheirState FULLNAME: Manager.TestServiceStatus.TestFromTheirState Тест Результат: Прошел Тест Продолжительность: 0: 00: 00,0072567 Result1 Имя: TestFromTheirState (перемежающаяся,
ri chas
1

голосов
0

ответ
94

Просмотры

DatePickerIOS не любит шутя высмеивал Date ()

Я настраиваю некоторые тесты JEST в моем реакции нативный проекта, так что я буду созданием снимков для моих компонентов. Один из них включает в себя DatePicker (в частности, только время), поэтому мне нужно издеваться последовательный Date () для моментальных снимков, чтобы соответствовать. Документы для DatePickerIOS указать в нем объект Date в дате реквизите, как я предоставил в моем расписании компоненты (новая дата ()). Я сделал несколько попыток решить этот: Const constantDate = новая дата ( 'Вт 9 января 2018 14:04:12 GMT-0330 (NST)') Date = класс расширяет Дату {конструктора () {супер (); вернуться constantDate}} & Const DATE_TO_USE = новый Дата ( 'Вт 9 января 2018 14:04:12 GMT-0330 (NST)'); Const _DATE = Дата; global.Date = jest.fn (() => DATE_TO_USE); global.Date.UTC = _Date.UTC; global.Date.parse = _Date.parse; global.Date.now = _Date.now; & в DatePickerIOS (созданный DatePicker) в DatePicker (созданный TimePicker) в TimePicker (созданный по графике) в View (созданный View) в View (созданный по графике) в View (созданный View) в View (созданный раздел) в Раздел (созданный по графике) в View (созданный View) в View (созданный по графике) в View (созданный View) в View (созданный AnimatedComponent) Без издеваться, время не совпадает в моментальном снимке (очевидно) , но я не получаю предупреждение для реквизита. Мне нужно создать экземпляр каждого Date) метод (объект или что-то делать? В чем причина этого предупреждения и это можно исправить? Мне нужно создать экземпляр каждого Date) метод (объект или что-то делать? В чем причина этого предупреждения и это можно исправить? Мне нужно создать экземпляр каждого Date) метод (объект или что-то делать? В чем причина этого предупреждения и это можно исправить?
MattyK14
1

голосов
0

ответ
158

Просмотры

Тест проходит в тестовом проводнике, терпит неудачу в GUI NUnit

У меня есть специальный тест, написанный в NUnit, который проходит в Visual Studio Test Explorer, но не проходит, когда он побежал в графическом интерфейсе NUnit. Тестовый модуль использует класс перехватчика, который свопы два метода, так что можно использовать второй метод как подделку для первого, который используется в блоке под испытанием. Это делается с C # небезопасного (неуправляемый) код: государственный статический сила Inject (MethodInfo replacedMethod, MethodInfo injectionMethod) {RuntimeHelpers.PrepareMethod (replacedMethod.MethodHandle); RuntimeHelpers.PrepareMethod (injectionMethod.MethodHandle); небезопасный {если (IntPtr.Size == 4) {INT * инъки = (INT *) replacedMethod.MethodHandle.Value.ToPointer () + 2; INT * дегтя = (целое *) injectionMethod.MethodHandle.Value.ToPointer () + 2; если (System.Diagnostics.Debugger. IsAttached) {// версия x86 Debug байт * injInst = (байт *) * инъекц; байты * tarInst = (байты *) * смола; INT * injSrc = (INT *) (injInst + 1); INT * tarSrc = (INT *) (tarInst + 1); Заменено = (((INT) tarInst + 5) + * tarSrc) - ((INT) injInst + 5); * TarSrc = (((INT) injInst + 5) + * injSrc) - ((INT) tarInst + 5); * InjSrc = Заменено; } Еще {// Версия x86 Release Заменено = * деготь; * Деготь = * инъки; * Инъки = Заменено; }}}} Я вызываю метод Inject от моего модульного тестирования: государственной статической силы SecondMethod (двойной [] е, из двойной var1, var2 из двойной, из двойной var3) {var1 = новый двойной (); var2 = новый двойной (); var3 = новый двойной (); var1 = 0.0; var2 = 0,0; var3 = 0,0; } [Тест] общественный недействительный Utilites_Tanks_ApproximateApogee_ReturnsTrue () {двойной вала = 10; двойной [] ECR = {1,2, 3,4, 5,6, 4,5, 6,7, 8,9}; . MethodInfo х = TypeOf (FirstMethodClass) .GetMethods () Одно (м. => M.Name == "FirstMethod" && m.GetParameters () Длина == 4); MethodInfo г = TypeOf (TestClass) .GetMethod ( "SecondMethod"); Interceptor.Inject (х, г); BOOL stageValue = UnitUnderTestMethodClass.Method (ECR, вал, из двойной [] apogeeInfo2); Assert.That (stageValue, Is.True); } Этот тест работает так, как планировалось; он прошел в Visual Studio Test исследователя и он показывает в графическом интерфейсе NUnit. Вешают, что он не проходит, когда побежал в графическом интерфейсе NUnit. Я запустить тест в NUnit графического интерфейса версии 2.6. # И 3. # С тем же результатом. Существует еще один тест, который я написал, что делает близко к тому же, и она проходит. Этот тест является перекачка методов без каких-либо аргументов, чтобы передать так часть GetMethod делается в перехватчик, в отличие от этого теста. Мне было интересно, если графический интерфейс NUnit не очень хорошо играть с небезопасной (неуправляемой) кодой. Я ссылка на правильную сборку в графическом интерфейсе NUnit, а поэтому я не считаю, что это вопрос. Thanx
Mootchmonster
1

голосов
0

ответ
112

Просмотры

Карма не работает ни одного случая модульного тестирования

Я пытаюсь создать карму для небольшого демонстрационного проекта. Проблема заключается в том, что карма не выполняет какие-либо тесты. Мой проект имеет только два .js файла: приложение / JS / app.js и тест / спецификация / app.spec.js Моего конфигурационный файл карма выглядит следующим образом: module.exports = функция (конфигурация) {config.set ({BasePath: '', рамки: [ 'жасмин'], плагины: [ 'карма-жасмин', 'карма-phantomjs-пусковая'], файлы: [ 'приложение / JS / app.js', «тест / спецификации / app.spec .js'], исключить: [], препроцессор: {}, репортерам: [ 'Dots'], порт: 9876, цвет: истина, LOGLEVEL: config.LOG_INFO, autoWatch: правда, браузеры: [ 'PhantomJS'], singleRun: истинный}); }; Временное содержимое моего app.spec.js файла является: описать ( «приложение JS», функция () {это ( 'тест'); }); Я использую Gulp в моем проекте, и я написал следующий глоток задачу для тестирования: gulp.task ( 'теста', функция () {gulp.src ( 'приложение / JS / ** / * JS.) .Pipe ( карма ({CONFIGFILE: 'karma.conf.js', действие: 'часы'}));}); Это то, что я получаю в терминале на ходовых испытания глотка: Запуск сервера Кармы ... WARN `start` метод является устаревшим, так как 0,13. Он будет удален в 0.14. Пожалуйста, используйте сервер = новый сервер (конфигурации, [сделано]) server.start () вместо этого. 11 01 2018 22: 26: 29,672: WARN [карма]: Нет захвачена браузера, откройте HTTP: // локальный: 9876/11 01 2018 22: 26: 29,686: INFO [карма] Карма: v2.0.0 сервер начал по адресу: //0.0.0.0:9876/ 11 01 2018 22: 26: 29,687: INFO [гранатомет]: Запуск PhantomJS браузера с неограниченным параллелизмом 11 01 2018 22: 26: 29.693:
aryan87
1

голосов
1

ответ
73

Просмотры

Возвращение макет метод аргумент с gmock

Как я могу вернуть ложный метод аргумент ON_CALL Return () аргумент действия? Пробный метод: MOCK_METHOD1 (Foo, Int (сопзЬ станд :: строка &)) Тест: TEST_F (Test, т) {// Я использую параметризованные тесты, это только для простоты станд :: результаты на карте = {{ "Apple" , 1}}; ON_CALL (объект, Foo (_)) .WillByDefault (Return (results.at (argument_from_foo_method))); }
Sajmplus
1

голосов
1

ответ
1.1k

Просмотры

How to test a computed prop setter of Vue component by Jest

I want to test if component's setter throws a custom error when trying to assign an invalid value. I think problem is that it doesn't even call a setter it is behaving like it just creates/assigns to normal property in the object. But it returns default sortData. Thanks for the help! Edit: here is described Vue component prop with getters and setters, which is exactly what I'm doing Code in the component: // Vue Component... sort: { /** * Getter. * */ get() { // Storing data from data(). return this.sortData }, /** * Setter. * */ set(value) { if (value === 'none' || value === 'by-date' || value === 'by-ratings') { this.sortData = value this.$emit('sortChange', value) } else { // I want to test this error throwing. throw new EnumError('(Component::SortPanel): Sort property is of type Enum. ' + 'It excepts either none, by-date or by-ratings values.') } } }, // Vue Component... Test case: beforeEach(function() { // Component for testing is inited by shallow function from vue-test-utils package. sortPanel = shallow(SortPanel) }) // Other tests... it('should have property sort', function() { expect(sortPanel.vm.sort).toBe('none') // Should be either none, by-date or by-ratings. expect(() => { sortPanel.vm.sort = 'anything' }).toThrow(EnumError) }) // Other tests...
Mikeee
1

голосов
1

ответ
46

Просмотры

Как обрабатывать вложенные синхронные обещания

]}]] Я успешно удалось запустить тест [0] со следующим фрагментом кода описания ( 'Беседы', функция () {для (пусть тест arrayOfTests) {описать (test.name, () => { для (пусть х = 0; х <test.flow.length; х ++) {пусть узел = test.flow [х], он ( "Запрос:" + node.request, (сделано) => {chai.request (» HTTP: // локальный: 5001' ) .then (сделано ()) // WORK});}});}}); Однако я начинаю столкнуться с проблемами при попытке тянуть весь тестовый файл и запустить каждый тест один за другим. Я подозреваю, что, вероятно, связано с размещением проделанных () Я устал обновлять его, но я не совсем уверен, как это сделать. Я прочитал есть it.each однако я не уверен, если это поможет в моей ситуации. Это моя попытка тестирования всего файла, который возвращает ошибку Пусто набор тестов. Чистый срез Вопрос: Как я могу обновить код, приведенный ниже, чтобы работать с самой верхней JSON. описывают ( 'Full тестов', () => {запрос (// Получает Тесты}). Затем ((Alltests) => {для (пусть испытание Alltests) {описывает ( 'Single тестового массива', () => { для (пусть испытание испытаний) {описывают ( "тест:" + test.name, () => {для (пусть х = 0; х <test.flow.length, X ++) {пусть узел = test.flow [х ], он ( "Запрос:" + node.request, (сделано) => {chai.request ( 'HTTP: // локальный: 5001'). затем (сделано ()) // РАБОТА}); }}); }}); }}); });
Jack
1

голосов
0

ответ
206

Просмотры

Как установить Microsoft Unit Testing Framework для C ++?

Согласно документации, представленной по тестам записи блока Microsoft для C / C ++ в Visual Studio Visual Studio включает в себя систему тестирования 4 модуля для C ++ по умолчанию без каких-либо дополнительных установок требуется. Однако, когда я пытаюсь добавить модульное тестирование рамки только тест Google показывается. На втором скриншоте я показываю, что я установил эти рамки. Как получить Microsoft Unit Testing Framework для C ++?
Learning C
1

голосов
1

ответ
90

Просмотры

не может видеть, как издеваются или писать тесты без маркировки слишком много виртуальных методов

Мы начинаем добавить модульное тестирование в нашем решение, и я пишу модульные тесты с помощью Moq. Я написал свои первые 10 тестов без поругания и был хорошо, но теперь, когда я достиг тесты, которые требуют насмешливых, каждый метод, который я пытаюсь проверить, кажется, требует частичной насмешки (ну, метод я тестирование, должна иметь фактическую реализацию и любые другие внутренний метод вызывается должны быть подделана). Проблема заключается в том, чтобы писать свои тесты, которые я должен сделать слишком много изменений в исходный код, чтобы сделать его проверяемым. Добавление интерфейсов для каждого класса одна вещи, и удаление зависимостей от способа и иметь их в качестве параметров может быть приемлемым, тоже (хотя я предполагаю, что это будет происходить слишком часто), но мне кажется, так же, что мне нужно отметить каждый метод зависимостей I нужно фальсифицировать как виртуальный. Это слишком много изменений в исходный код только, чтобы сделать его проверяемым. Так; мой вопрос, это, как я должен делать это, или есть способ написания модульных тестов без этого много изменений, и виртуализации методы также? Вот пример 1 модульного тестирования я пишу: класс ContrastControlViewModel общественности: ViewModelBase, IContrastControlViewModel {общественных недействительных UpdateCompositePropertyValues ​​(String ИмяСвойства) {если (! SelectedVideoProcessingSubstream = NULL) {переключатель (ИмениСвойства) {случай "ContrastCurve": если (_enableContrastControlUpdate) { UpdateContrastCurve (); // только обновляет локальный дисплей линейного графика контраста контролирует _enableContrastControlUpdate = ложь; } перерыв; дефолт: перерыв; }}} Общественного IVideoProcessingSubstreamViewModel SelectedVideoProcessingSubstream {получить {...} множество {...}}} [TestClass] общественного класса ContrastControlViewModelTests {[TestMethod] общедоступный недействительными UpdateCompositePropertyValues ​​() {// Сценарии: 8 испытаний, могут быть разделены Еогеасп (String input_propertyName в новой строке [] { "ContrastCurve", "другой"}) Еогеасп (вар input_SelectedVideoProcessingSubstream в новом IVideoProcessingSubstreamViewModel [] {нуль, (IVideoProcessingSubstreamViewModel) (новый Mock ()). Object}) Еогеасп (BOOL input_enableContrastControlUpdate в новом BOOL [] {правда, ложь}) {// Упорядочить: BOOL UpdateContrastCurve_called = ложь; вар Vm = новый Тестовая модель (10, 10, 200, 200, 240, 240) {CallBase = истина}; vm.SetupProperty (м => m.SelectedVideoProcessingSubstream); // броски NotSupportedException vm.SetupProperty (м => m._enableContrastControlUpdate); . Vm.Setup (м => m.UpdateContrastCurve ()) Обратный вызов (() => UpdateContrastCurve_called = истина); // Закон: vm.Object._enableContrastControlUpdate = input_enableContrastControlUpdate; vm.Object.SelectedVideoProcessingSubstream = input_SelectedVideoProcessingSubstream; vm.Object.UpdateCompositePropertyValues ​​(input_propertyName); // Утверждай: Утверждают. IsTrue (UpdateContrastCurve_called == (input_propertyName == "ContrastCurve" && input_SelectedVideoProcessingSubstream = NULL && input_enableContrastControlUpdate == верно!)); } } } Так; сейчас я получаю NotSupportedException, потому что «SelectedVideoProcessingSubstream» должен быть виртуальным, чтобы быть фальшивым. Если я начинаю делать, что все заканчивает тем, что отмеченные виртуальным. Позже, я в конечном итоге даже методы маркировки других классов виртуальных. должен быть виртуальным, чтобы быть фальшивым. Если я начинаю делать, что все заканчивает тем, что отмеченные виртуальным. Позже, я в конечном итоге даже методы маркировки других классов виртуальных. должен быть виртуальным, чтобы быть фальшивым. Если я начинаю делать, что все заканчивает тем, что отмеченные виртуальным. Позже, я в конечном итоге даже методы маркировки других классов виртуальных.
Shervan
1

голосов
0

ответ
63

Просмотры

Как сделать сборки VS терпят неудачу, когда один или более NUnit тесты терпят неудачу?

Я только начал играть с этим парнем. Есть ли способ, чтобы включить его в моем плане сборки? Или Visual Build студии? Так что, когда некоторый тест не проект не будет строить? Я видел некоторые люди спрашивали его, но ответ не то, что ясно для меня. Шаг за шагом будет очень полезно. Спасибо
Glyde
1

голосов
3

ответ
242

Просмотры

Как установить или проверить это. $ Родителя в модульном тестировании Vuejs?

В моих компонентов набора данных () {категории:. Это $ parent.categories => который я поставил в main.js} Файл кода main.js импорт категорий из»../config/categories'; новый Vue ({маршрутизатор, данные: {категории: категории}}); Я создал 1 тест функцию блока он ( 'проверка компонента кнопки', () => {сопз обертка = неглубоко (FormSearch), ожидать (wrapper.contains ( 'кнопка')) Тоба (истина),.}); Я бег теста затем показать сообщение об ошибке: Ошибка в данных (): «Ошибка типа: Не удается прочитать свойство„категории“неопределенных» Как это исправить. Помоги мне.
hiep
1

голосов
1

ответ
20

Просмотры

Должны ли мы писать тесты на коммунальные услуги? Или просто написать юнит тестирований для случаев использования, которые относятся к ним?

Предположим, что у нас есть утилита, предназначенная для проверки диапазона дат достоверности (например, дату не более чем дата окончания, и максимальный диапазон дат начала) и утилита дико используется для всех интерфейсов запросов (около 40 АФИ в общей сложности). Утилита будет генерировать 400 Bad Request, если диапазон дат является недействительным. Теперь вопрос: Мы пишем тесты для утилиты, так что все модульные тесты для API, запроса можно предположить, что диапазон дат проверки работы, как ожидалось. по сравнению Поскольку ИПНЫ запросы находятся там, где начинают случаи использования, все модульные тесты для API, запроса должны включать дату тестовый диапазона, чтобы обеспечить 400 Плохой статус запроса будет происходить, когда диапазон дат недействителен. Какой из них правильный?
Robert Vandenberg
1

голосов
0

ответ
665

Просмотры

Дразнящий наследуемых классов с Jest

Я простирающийся net.Socket. При этом, я перекрывая соединять метод следующим образом. Класс ENIP расширяет Оправа {конструктор () {супер (); this.state = {сессии: {ID: нуль, устанавливая: ложь, установлено: ложь}, ошибка: {код: нуль, сообщ: NULL}}; } Подключить (IP_ADDR) {сопз {registerSession} = инкапсулирование; // возвращает буфер для отправки this.state.session.establishing = истина; вернуть новый посыл (решительность => {super.connect (EIP_PORT, IP_ADDR, () => {// Это то, что я хочу, чтобы издеваться -> super.connect this.state.session.establishing = false; this.write (registerSession ()); разрешить(); }); }); }} Я хочу, чтобы дразнить базовый класс сокета, так что я могу имитировать супер. подключения. Просмотрев документы Facebook, по этому вопросу, я не уверен, о том, как приступить к разработке тестов для этого класса, как и все методы расширят super.someMethodToMock. Кто-нибудь знает подход, я должен взять? Пожалуйста, дайте мне знать, если есть какие-либо уточняющие детали я могу предоставить.
canaan seaton
1

голосов
0

ответ
28

Просмотры

How do I reference a view passed as a prop from some other file for testing(using npm test )?

I have written my function as follows: _clickTile = (id, view) => { console.log(id); console.log(view); if (id == this.props.data.answerIndex) { view.zoomOut(250).then((endState) => { this.props.setProgress && this.props.setProgress(1) this.refs.questionView.zoomIn(250); this.props.onScore && this.props.onScore(2) this.setState({...this.state, statuses: this.state.statuses.map(()=>'Neutral')}) view.zoomIn(250); this.props.onEnd() }) } else { view.shake(250); } } In this function I'm getting id and view of a particular tile being clicked but while testing I'm unable to reference the view. The test case that I wrote for this is: it('Adds scores correctly', () => { const tree = renderer.create( {}} onScore={(score) => { this.props.dispatch(addMyScore(score)) }} onEnd={() => { this.setState(...this.state, { gameOver: true }) }} /> ).getInstance() tree.componentWillReceiveProps(tree.props) tree._initBoard(tree.props) tree._clickTile('1', 'view') tree._onStatusChange('1', 'view', 'Neutral', 'Selected') expect(tree).toMatchSnapshot() }) and on executing this test code what I'm getting is that the lines 9,10,11 and 12 from the _clickTile function are not being covered. Does anyone have any idea on how to reference the view?
Karan Saluja
1

голосов
1

ответ
39

Просмотры

How do I stub a method in an object that is loaded in my class/method under test?

Наше MEANJS приложение имеет класс (например, CompanyService), который загружает объект (например, CompanyRepo) другого класса и вызывает метод на нем. Я пытаюсь писать тесты для класса CompanyService и должен были бы окурок метода в методе CompanyRepo для имитации отказа обещания. Тем не менее, несмотря на заглушке, вызов метода CompanyService, кажется, называют фактический CompanyRepo вызов метода. Поток кода, как показано ниже, функция companyService метод isDomainExists (домен) {вернуть новый Promise (функция (решение, отклонить) {companyRepo.getCompanyByDomain (домен) .then (функция (фирма) {возвращение Решимость (фирма);}, функция ( отвергается) {возвращение отвергают ( "Ошибка");})}}); Единица Метод испытания вар окурка = sinon.stub (companyRepo» Если вернуться компания не зарегистрирована, если есть ошибка DB», функция () {вернуться companyService.isDomainExists („тест компания“) should.eventually.be.rejected (). }); stub.restore (); Выход компании сервис isDomainExists метод должен возвращать компания не зарегистрирована, если есть ошибка DB: AssertionError: ожидается обещание быть отклонено, но оно было выполнено с {Object ($ __, isNew, ...)} Я думаю, что я могу понять, что происходит Вот. Класс companyService имеет требовать заявление, которое загружает класс companyRepo который запускается на выполнение еще до того, произойдет раскорчевка. Есть ли способ, с помощью которого я могу избежать этого не происходит? Какова рекомендуемая лучшая практика в этом случае? Если вернуться компания не зарегистрирована, если есть ошибка DB», функция () {вернуться companyService.isDomainExists („тест компания“) should.eventually.be.rejected (). }); stub.restore (); Выход компании сервис isDomainExists метод должен возвращать компания не зарегистрирована, если есть ошибка DB: AssertionError: ожидается обещание быть отклонено, но оно было выполнено с {Object ($ __, isNew, ...)} Я думаю, что я могу понять, что происходит Вот. Класс companyService имеет требовать заявление, которое загружает класс companyRepo который запускается на выполнение еще до того, произойдет раскорчевка. Есть ли способ, с помощью которого я могу избежать этого не происходит? Какова рекомендуемая лучшая практика в этом случае? Ожидается обещание быть отклонено, но оно было выполнено с {Object ($ __, isNew, ...)} Я думаю, что я могу понять, что здесь происходит. Класс companyService имеет требовать заявление, которое загружает класс companyRepo который запускается на выполнение еще до того, произойдет раскорчевка. Есть ли способ, с помощью которого я могу избежать этого не происходит? Какова рекомендуемая лучшая практика в этом случае? Ожидается обещание быть отклонено, но оно было выполнено с {Object ($ __, isNew, ...)} Я думаю, что я могу понять, что здесь происходит. Класс companyService имеет требовать заявление, которое загружает класс companyRepo который запускается на выполнение еще до того, произойдет раскорчевка. Есть ли способ, с помощью которого я могу избежать этого не происходит? Какова рекомендуемая лучшая практика в этом случае?
Agni Barathi
1

голосов
0

ответ
127

Просмотры

Угловые Без учета внешних тесты

У меня есть Угловой проект в хранилище Git, который имеет Git подмодуль, который имеет свои собственные испытания машинописи (а-ля xyz.spec.ts). Submodule в / SRC / внешний / [Подмодули] Когда я запускаю тест НПМ, я получаю сообщение об ошибке, что он не может найти мокко, и т.д., для выполнения тестов для субмодуля. Поэтому после долгих и тестирования прибегая к помощи, я добавил «исключить»: [ «внешний»] к моему SRC / tsconfig.spec.json и «тест»: { «покрытие кода»: { «исключить»: [ "ЦСИ / внешний / ** / * "]}, ...} до .angular-cli.json Теперь, когда я тест я получаю: Предупреждение в ./src/external/api/src/api/models/index.spec.ts неисправного модуля сборки: Ошибка : [путь к репо] \ SRC \ внешний \ апи \ SRC \ апи \ модели \ index.spec.ts отсутствует в машинописном компиляции. Пожалуйста, убедитесь, что в вашем TSconfig через «файлы» или " включают в себя»property`. Как исключить набор файлов из проверки (и, надеюсь, пыление) правильно и по-прежнему держать их для сборки?
dmcblue
1

голосов
0

ответ
63

Просмотры

Существуют ли какие-либо методы для быстрой перемотки времени для целей тестирования в приложениях Qt?

Использование Qt для разработки системы, которая в различных местах включает в себя переходы между состояниями на основе времени. Я пытаюсь поставить на месте всеобъемлющего охвата модульного тестирования, как я иду, и, очевидно, пытаясь обеспечить полное автоматическое тестирование состояния переходов, которые происходят в течение нескольких вторых или даже минутных периодов сильно неоптимальный. В прошлом, когда имеет дело с теми же проблемами, для «чистого металла» C и RTOS встраиваемых систем на базе, я успешно реализованы крючки функции, которые позволили быстро вперед / ускорению прохождения времени для тестирования, и мне интересно, если кто-нибудь там пришло через любые методы для достижения того же в Qt (API разработчика, регулировочные библиотеки и т.д.) государственные переходы в вопросе могут вызвать из комбинации QTimer тайма-аута, экспертиза QDateTime / QElapsedTimer / QDeadlineTimer метки времени и QThread спит, так что просто подделка сигналов QTimer :: таймаута не хватает. Не очень нуждаясь обычными предложениями относительно внедрения зависимости от mockable таймеров, интерфейсов, которые позволяют конфигурируемые таймауты, или висят пользовательский тест содействия фасадных / декораторов по совокупности из библиотеки времени, связанные классов Qt. Я хорошо знаю, как я мог бы сделать это, я надеюсь, что я не должен ... заблуждайтесь в https://forum.qt.io/topic/88268/are-there-any-techniques- к быстрой перемотки вперед-времени-для-тестирования-целей-в-кварт-приложения THx или висят пользовательский тест, облегчающий фасадные / декоратор по полноте времени библиотеки Qt связанных классов. Я хорошо знаю, как я мог бы сделать это, я надеюсь, что я не должен ... заблуждайтесь в https://forum.qt.io/topic/88268/are-there-any-techniques- к быстрой перемотки вперед-времени-для-тестирования-целей-в-кварт-приложения THx или висят пользовательский тест, облегчающий фасадные / декоратор по полноте времени библиотеки Qt связанных классов. Я хорошо знаю, как я мог бы сделать это, я надеюсь, что я не должен ... заблуждайтесь в https://forum.qt.io/topic/88268/are-there-any-techniques- к быстрой перемотки вперед-времени-для-тестирования-целей-в-кварт-приложения THx
Richard Lang
1

голосов
0

ответ
44

Просмотры

MOq простой проверки, если диапазон был заполнен

Игра вокруг с MOQ, пытаясь получить некоторый тест на работу. Но я отчасти смущен. Я сделал очень простой интерфейс, с реализацией, которая содержит некоторую коллекцию. Там у меня есть 2 метода: Добавить и AddRange (оба возвращаются аннулируются). То, что я хочу, чтобы проверить, является: Mock mockedContext = новый Mock (); вар noteServiceImpl = новые NoteServiceImpl (mockedContext.Object); вар нота = Enumerable.Repeat (новое примечание (), 10) .ToList (); mockedContext.Setup (м => m.AddRange (ноты)) Возвращает (ноты). вар ReadAll = noteServiceImpl.ReadAll (); Но ReadAll равно нулю, поэтому я попытался: вар ноты = Enumerable.Repeat (новое примечание (), 10) .ToList (); noteServiceImpl.AddNotes (ноты); вар ReadAll = noteServiceImpl.ReadAll (); Но до сих пор пустой .... Что мне не хватает в этой установке?
Learner
1

голосов
1

ответ
21

Просмотры

Передразнивал MVC Session с его методом, похоже, не вызывается, когда убедитесь в утверждаете

Я последовал за учебник здесь насмешливые сессии в HTTP контекст настройки I типа: вар сессии = новый Mock (); session.Setup (с => s.Clear ()); а затем добавить в контекстном context.Setup (с => c.Session) .Returns (session.Object); И я использую его для установки контроллера вар контроллера = новый MyController (); Контекст = MvcHelper.FakeHttpContext (); controller.SetFakeControllerContext (контекст); controller.Index (); context.Verify (с => c.Session.Clear (), Times.Once); // вот проблема, UT говорит, что никогда не вызывается. и мое действие выглядит следующим образом: общественный ActionResult Index () {this.Session.Clear (); } Я отлажена тест и я достигаю линию, где называется сессия ясно метод. Почему проверить это не удалось?
Snake Eyes
1

голосов
0

ответ
102

Просмотры

Как написать модульное тестирование для проекта RequireJS

Я пытаюсь писать тесты с Chai мокко, но получаю следующее сообщение об ошибке. ReferenceError: определить не определен Это приложение написано в машинописном и если бы я попытался создать фиктивный файл для создания модульного тестирования, он отлично работает без какого-либо импорта. модульное тестирование кода ниже импорта {} ожидать от «Chai»; импорт {MarionetteApp} от '../app/app'; описывают ( "MarionetteApp", () => {описать ( "Добавить", () => {это ( "Если вернуться 3 при а = 1, Ь = 2", () => {пусть известково = новый MarionetteApp () ; результат переменная = calc.test (); ожидать (результат) .to.equal ( "Привет");});});}); Файл, для которого я хочу написать модульное тестирование является импортом {RootView} от «./views/RootView»; импорт {AdvancedCustomController} из». / Контроллеры / AdvancedCustomController '; импорт * в качестве БД из «./db/DB»; экспорт класс MarionetteApp расширяет Marionette.Application {конструктор () {супер (); } Тест () {возвращение "Привет"; } Инициализации () {(окно) .UXToolApp = это; } OnBeforeStart () {// инициализация контроллеров вар advancedCustomizationController = новый AdvancedCustomController (); // Init просмотров вар rootView = новый RootView (); rootView.render (); }} При выполнении модульного тестирования, я получаю сообщение об ошибке сильфона TSconfig файла ниже "версии": "1.5.0-бета", "compilerOptions": { "цель": "ES5", "модуль": "CommonJS", " sourceMap ": правда, // "модуль":"
Arif Iqbal
1

голосов
0

ответ
146

Просмотры

Kubernetes макет тест пост тело

Мы используем io.fabric8.kubernetes.client.server.mock.KubernetesServer в нашем модульном тестировании, чтобы проверить взаимодействие с сервером K8S. Есть ли способ, чтобы проверить отправленное тело, например пост запрос на сервер K8S? Например kubernetesServer.expect (). Положим () // .withPath (формат ( "/ API / v1 / пространств имен / {} / configmaps / {}", пространство имен, configMapName)) // .andReturn (200, ConfigMap) / / .один раз(); мы хотели бы подтвердить, что наш код отправить правильные данные ConfigMap на сервер K8S. Разве мы что-то пропустил, или это действительно не доступны?
Michael D.
1

голосов
0

ответ
288

Просмотры

TypeError: Cannot read property 'removeItem' of undefined

I am learning writing unit test cases in ReactJs and new to this. I am getting "TypeError: Cannot read property 'removeItem' of undefined" error while running the test case in ReactJs using mocha.I gone through some links but I did not find any solution. How can I resolve this issue? Here I am attaching my test case. Thanks in advance. import React from 'react'; import sinon from 'sinon'; import ReactDOM from 'react-dom'; import TestUtils from 'react-addons-test-utils'; import configureStore from 'redux-mock-store'; import { Provider } from 'react-redux'; import createRouterContext from 'react-router-test-context'; import { createStore } from 'redux'; import reducers from '../../../../src/reducers/RootReducer'; import { token } from '../../../Token'; import '../../../../static/js/jquery.slimscroll.js'; import configureStores from '../../../../src/store/configureStore'; import EditDevice from '../../../../src/components/rightComponents/projectManagementComponents/EditDevice'; const routerObj = Object.assign(createRouterContext().router.history, { go: spy(), goBack: spy(), goForward: spy(), setRouteLeaveHook: spy(), isActive: spy() }); const CONTEXT_TYPE = { router: routerObj }; const CHILD_CONTEXT_TYPE = { router: React.PropTypes.object, }; localStorage.setItem('token', token); const initialState = { reviewStageData: { deviceData: { wmi_status: 'Success', core: '2', disk_count: 1, disk_drive: 2, os_type: 'Others', role_names: 'Server', storage_type: '', totalstorage: '2.0', used_storage: '129.74', }, sectionName: 'device', osList: 'windows 7', dummyFlag: 'true', }, }; describe('CHECKING EDITDEVICE', () => { localStorage.setItem('token', token); let store, wrapper; const mockStore = configureStore(); const myspy = spy(EditDevice.prototype, 'componentDidMount'); beforeEach(() => { store = mockStore(initialState); const routeParams = { client_id: 177, }; wrapper = mount( ).setState({ devicedata: deviceData }); }); afterEach(() => { myspy.restore(); }); it('', () => { expect(EditDevice.prototype.componentDidMount.calledOnce).toEqual(true); }); });
Jks
1

голосов
1

ответ
293

Просмотры

Uncaught Ошибка синтаксиса при выполнении модульных тестов Vue.Js с кармой

Я пытаюсь получить модульное тестирование создано для моего проекта Vue JS с Кармой и мокко (с вю-кли, я первоначально использовался Шутками, но я переключение Кармы). Я пытаюсь запустить мой тест с началом кармы; карма бежать, и я получаю: 09 03 2018 17: 02: 49,778: INFO [карма] Карма: v2.0.0 сервер начал в http://0.0.0.0:9876/ 09 03 2018 17: 02: 49.786: INFO [пусковая ]: Запуск браузера Chrome с неограниченным параллелизмом 09 03 2018 17: 02: 49.797: INFO [гранатомет]: Запуск браузера Chrome 09 03 2018 17: 02: 54,410: INFO [Chrome 64.0.3282 (Windows 10.0.0)]: Connected на гнездо mvbOII8qli3NiwBMAAAA с идентификатором 62867001 Chrome 64.0.3282 (Windows 10.0.0) ERROR { "сообщение": "Uncaught SyntaxError: Неожиданный идентификатором \ Nat данные / PdfView.spec.js: 3: 8 \ N \ nSyntaxError: Неожиданный идентификатор", " ул ":" Uncaught SyntaxError: // Препроцессоры 'карма-WebPack', 'карма-sourcemap-погрузчик', // Репортеров карма-спец-репортер ", 'карма-покрытие'], WebPack: webpackConfig, webpackMiddleware: {noInfo: истинно}, singleRun: правда , coverageReporter: {реж: './coverage', репортеры: [{тип: 'lcov', подкаталог: '' }, {Типа: 'текст-резюме'}]}})} Мой .babelrc файл: { "пресеты": [[ "окр", { "модули": ложные, "цели": { "браузеры": [» > 1% " "последние 2 версии"," не то {Реж: './coverage', репортеры: [{тип: 'lcov', подкаталог: '' }, {Типа: 'текст-резюме'}]}})} Мой .babelrc файл: { "пресеты": [[ "окр", { "модули": ложные, "цели": { "браузеры": [» > 1% " "последние 2 версии"," не то {Реж: './coverage', репортеры: [{тип: 'lcov', подкаталог: '' }, {Типа: 'текст-резюме'}]}})} Мой .babelrc файл: { "пресеты": [[ "окр", { "модули": ложные, "цели": { "браузеры": [» > 1% " "последние 2 версии"," не то
Josh
1

голосов
0

ответ
27

Просмотры

Gradle тесты набегать запутанным баночке

Gradle: как запускать тесты против запутанной баночки? SRC / главная / Java тест SRC / тест / Java Gradle Это будет запускать тесты против основного источника набора продукции, а не банку. Предположим, что: main.jar является запутывание к основному-obfuscated.jar. Как запускать тесты против запутанной баночки, а не основные выходных классов?
Sunnyday
1

голосов
0

ответ
40

Просмотры

Мокко Глобальные тесты и контекст документации

Я в настоящее время работаю над созданием «глобальные» тестов в мокко. В основном, это правила, которые я хочу запустить после каждого теста, что я пишу, чтобы обеспечить определенные глобальные модели поведения, как очистка ресурсов. В настоящее время, лучший подход, который у меня есть включает в себя использование beforeEach / afterEach программной терпеть неудачу испытания, если они не соответствуют этому поведению. Пример: beforeEach (функция () {// Установить некоторый материал отслеживания с помощью Sinon}); afterEach (функция () {если (this.currentTest.state === 'не удалось') {возвращение;} если (thisTestHasALeak (this.currentTest)) {this.test.error (новый Error ( 'Это испытание на утечку' ));}}); Этот подход работает, но есть некоторые особенности, которых не хватает, и развитие на этом медленно б / с там не кажется, документация о том, что именно существует на этом объекте в тесте мокко. Лучшая документация я мог бы найти здесь, и это было ограничено. Есть ли хорошая документация или ресурсы, чтобы помочь мне с моим усилием?
darpa
1

голосов
0

ответ
60

Просмотры

Угловой тест устройства не может прочитать свойство подписки

Так им пытаются создать модульный тест для этого компонента и продолжать получать эту ошибку. TypeError: Не удается прочитать свойство «подписаться» на неопределенное. Что является причиной этого, и как бы я правильно осуществить тест блока / интеграцию для этого компонента? боковая панель-элемент-component.html {{}} item.label боковая панель-элемент-component.ts импорта {Компонент, OnInit, вход} от '@ угловой / ядра'; импорт {ExampleDef} от '../example.model'; импорт {Место} от «@ угловой / общий»; импорт {маршрутизатор, ActivatedRoute} от '@ угловой / маршрутизатора; @Component ({селектор: 'приложение-боковая панель-элемент', templateUrl: './sidebar-item.component.html'}) экспорта класс SidebarItemComponent реализует OnInit {@Input ( '') пункт пункт: ExampleDef; Конструктор (частный маршрутизатор: маршрутизатор, частный маршрут: ActivatedRoute, частное местоположение: Location) {} // Проверяет, является ли этот текущий пример выбран один IsActive (): Boolean {возвращение `/ $ {this.item.path}` === this.location.path (); } NgOnInit () {}} импорт спецификации файла {IntroComponent} от './../intro/intro.component'; импорт {TestBed, асинхронные, ComponentFixture} от '@ угловые / ядра / тестировании'; импорт {SidebarItemComponent} от './sidebar-item.component'; импорт {маршрутизатор, ActivatedRoute} от '@ угловой / маршрутизатора; импорт {К} от '@ угловой / платформы браузера; импорт {RouterTestingModule} от '@ угловой / маршрутизатор / тестирование'; импорт {NgClass, расположение} от '@ угловой / общий'; импорт {SidebarComponent} от './sidebar.component'; импорт {ExampleDef} от '../example.model'; Компонент = fixture.componentInstance; fixture.detectChanges (); }); приспосабливать ( 'должен ссылаться на пути пункт', () => {component.item.path = '/ дом'; component.item.label = 'Введение'; component.isActive (); fixture.detectChanges (); пусть де = fixture.debugElement.query ( 'пункт 'By.css ()) пусть эш: HTMLElement = de.nativeElement, ожидать (el.innerText) .toContain (' интро');}); }); ожидать (el.innerText) .toContain ( 'интро'); }); }); ожидать (el.innerText) .toContain ( 'интро'); }); });
user3228452
1

голосов
2

ответ
279

Просмотры

UnitTest для аргументов командной строки

Как проверить блок I мой сценарий для некорректных аргументов командной строки? Например, my_script.py -t должен давать ошибку, так как флаг -t нет, как показан в коде ниже: синтаксический анализатор = OptionParser () parser.add_option ( «- д», действие = «обратный вызов», обратный вызов = get_bios_difference , помощь = "Проверьте разницу между двумя файлами") (опции, арг) = parser.parse_args (), если Len (sys.argv) == 1: # если только один аргумент, это имя сценария parser.print_help () выход ( )
Steve
1

голосов
1

ответ
37

Просмотры

Debug: weird issue when state change

I had a weird issue. when I run Nav.test.js, fakeCountryCollection was also changed inside describe('something else'), why is that? I couldn't figure out where I changed fakeCountryCollection. Nav.js //clickNavDropdown will inverse showSubNav inside the state('countryCollection'); clickNavDropdown(countryCounter){ let countryCollection = this.state.countryCollection; countryCollection[countryCounter].showSubNav = !countryCollection[countryCounter].showSubNav; this.setState({'countryCollection':countryCollection}); } Nav.test.js describe('test nav.js', function () { let fakeCountryCollection = [{value: 'england', count: 2, showSubNav: true}, {value: 'canada', count: 0, showSubNav: false}, {value: 'thailand', count: 0, showSubNav: true}, {value: 'hongkon', count: 0, showSubNav: true}]; //clickNavDropdown will inverse showSubNav inside the state('countryCollection'). describe('function clickNavDropdown', function () { let app = shallow(); app.setState({'countryCollection': fakeCountryCollection}); let countryCollection = app.state('countryCollection'); for (let [index, eachCollection] of countryCollection.entries()) { app.instance().clickNavDropdown(index); it('iterator the countryCollection in: '+index, function () { ... }); } }); describe('something else', function () { console.log('fakeCountryCollection been inverse: ',fakeCountryCollection); ... }); }); Following shows in terminal: fakeCountryCollection been inverse: [ { value: 'england', count: 2,showSubNav: false }, { value: 'canada', count: 0, showSubNav: true }, { value: 'thailand', count: 0, showSubNav: false }, { value: 'hongkon', count: 0, showSubNav: false } ]
jimmy
1

голосов
0

ответ
44

Просмотры

Instrumented тест с блесной и arrayAdapter

Я искал какое-то время решений в Интернете и на форуме, но я не мог найти решение моей проблемы. И я застрял с этим на некоторое время. Я пытаюсь проверить, что, когда я называю метод (showLanguage (язык String)), то отображается язык является правильным. Этот метод находится внутри класса (OnePrinterSettingFragment), и это вызывает два метода на блесны и в ArrayAdapter набор на центрифуги. (Я снял много вещей внутри класса OneprinterSettingFragment, но в принципе, то, что я думаю, стоит рассмотреть вопрос о том, что метод showLanguage вызывает GetPosition на ArrayAdapter и setSelection на Spinner) общественный класс OnePrinterSettingFragment расширяет BaseFragment реализует View.OnClickListener, OnePrinterSettingFragmentContract. Вид {защищенный Spinner spnLanguagePrint; частный ArrayAdapter languageAdapter = ArrayAdapter.createFromResource (PosApplication.getInstance () getApplicationContext (), R.array.language_printing_array, android.R.layout.simple_spinner_item.); @Override общественного недействительный showLanguage (язык String) {INT = позиция languageAdapter.getPosition (язык); spnLanguagePrint.setSelection (позы); }} А вот тест: RunWith (AndroidJUnit4.class) @PrepareForTest (OnePrinterSettingFragment.class) общественный класс OnePrinterSettingFragmentInstrumentUnitTest {OnePrinterSettingFragment MView; Контекст mContext; @Before общественной недействительная нАлАдкА () бросает исключение {mContext = InstrumentationRegistry.getContext (); MView = новый OnePrinterSettingFragment (); mView.setSpnLanguagePrint (новый Spinner (mContext)); ArrayAdapter languageList = новый ArrayAdapter (mContext, R. array.language_printing_array); mView.setLanguageAdapter (languageList); mView.setSpnLanguagePrint (новый Spinner (mContext)); mView.getSpnLanguagePrint () setAdapter (languageList). } @Test общественный недействительный showLanguage () бросает исключение {mView.showLanguage ( "вьетнамский"); assertTrue ( "Не удалось показать вьетнамский язык", mView.getSpnLanguagePrint () getSelectedItem () ToString () == "вьетнамский"..); }} Я не издеваться класс OnePrinterSettingFragment, потому что, когда я это делаю, андроид студия бросает abstractError, и когда я делаю, как это выше, андроид студия говорит, что mView.getSpnLanguagePrint (). GetSelectedItem () равна нулю Я заблокирован, и я пытался понять, почему это имеет нулевое значение, но я не понимаю. Я думал, что в способе установки испытания, объявляя мнения (Горячо и так далее) достаточно. Но, видимо, нет. Если кто-нибудь может помочь мне, пожалуйста. заранее спасибо
Anis
1

голосов
0

ответ
86

Просмотры

NotificationManager.isNotificationPolicyAccessGranted NPE в Robolectric

Я хочу написать простой тест с участием notificationManager.isNotificationPolicyAccessGranted Robolectric в. пакет com.xi_zz.mutephonebutton импорта android.app.NotificationManager импорта android.app.NotificationManager.INTERRUPTION_FILTER_ALL импорт android.app.NotificationManager.INTERRUPTION_FILTER_PRIORITY импорт android.content.Context импорт org.junit.Assert.assertEquals импорт org.junit.Before импорт орг .junit.Test импорт org.junit.runner.RunWith импорт org.robolectric.RobolectricTestRunner импорт org.robolectric.RuntimeEnvironment @RunWith (RobolectricTestRunner :: класс) класс MainViewModelTest {lateinit вар notificationManager: NotificationManager @Before весело нАлАдкА () {notificationManager = RuntimeEnvironment .application.getSystemService (Context. NOTIFICATION_SERVICE), как NotificationManager} @Test удовольствие testTest () {assertEquals (notificationManager.getCurrentInterruptionFilter (), INTERRUPTION_FILTER_ALL); // Проход notificationManager.setInterruptionFilter (INTERRUPTION_FILTER_PRIORITY); assertEquals (notificationManager.getCurrentInterruptionFilter (), INTERRUPTION_FILTER_PRIORITY); // Проход вар BOOL = notificationManager.isNotificationPolicyAccessGranted // NPE}} Ошибка: java.lang.NullPointerException в android.app.NotificationManager.isNotificationPolicyAccessGranted (NotificationManager.java:773) в com.xi_zz.mutephonebutton.MainViewModelTest.testTest (MainViewModelTest.kt : 31) в org.junit.runners.model.FrameworkMethod $ 1.runReflectiveCall (FrameworkMethod.java:50) в org.junit.internal. 131) notificationManager работает, пока я не позову isNotificationPolicyAccessGranted. Любая идея, почему это происходит? Я использую Robolectric 3.8 и JUnit 4.12.
Xi Wei

Просмотр дополнительных вопросов