天道酬勤,学无止境

testing

In Jest what's the best way to loop through an array of inputs and expected outputs?

If I want to write a test for a calculator that adds things together. I might define my tests like this: const tests = [ { input: [1, 2], expected: 3, }, { input: [2, 1], expected: 3, }, { input: [3, 4], expected: 7, }, { input: [2, 10], expected: 12, }, { input: [2, 5], expected: 7, }, ... ] tests.forEach((t) => { expect(add(t.input)).toEqual(t.expected) }) The problem is, if one of those tests fails, the error just says: Expected: "7" Received: "10" 216 | tests.forEach((t) => { > 217 | expect(add(t.input)).toEqual(t.expected) | ^ 218 | }) From this, I can't tell if it was 3+4 that was

2021-10-25 21:31:45    分类:问答    unit-testing   testing   jestjs   automated-tests

有没有办法在重试期间在 KarateDSL 中传递新请求? 谢谢,(Is there a way to pass a new request in KarateDSL during retry? Thank you,)

问题 我的功能是这样的: Scenario: Searching Value * def Search = generateRandomNumberFive(111,999) * call read('classpath:services/common.feature') Given url domain + '/localhost/mysearch?query=' + Search And headers scenarioHeaders And retry until myRecord != $response.suggestions[0].ID == 8 When method get Then status 200 * def myRecord = $response.suggestions[?(@.ID==8)] 我希望在成功重试时重新生成 iSearch 值。 感谢大家的帮助,并提前感谢@peter-thomas! 回答1 并重试直到 myRecord != $response.suggestions[0].ID == 8 那肯定是不正确的。 重试表达式必须是纯 JS。 这在这里详细解释:https://stackoverflow.com/a/55823180/143475 所以你应该去掉$ - 那是 JsonPath(不是 JS)。 And retry until

2021-10-25 20:56:50    分类:技术分享    api   testing   karate

androidviewclient - 无法通过端口转发连接到 vm 上的设备(androidviewclient - Can't connect to the device on vm with port forwarding)

问题 我将 vm 上的 localhost 转发到具有 80 端口(8080 ip:80)的主机,在此之前 avc 工作正常,现在连接到设备时出错: import sys import os try: sys.path.append(os.path.join(os.environ['ANDROID_VIEW_CLIENT_HOME'], 'src')) except: pass from com.dtmilano.android.viewclient import ViewClient device, serialno = ViewClient.connectToDeviceOrExit(verbose=False) def init(): global device return device 一个错误: Traceback (most recent call last): File "launcher.py", line 5, in <module> import device File "/home/test/www/ANDROID/device.py", line 11, in <module> device, serialno = ViewClient.connectToDeviceOrExit(verbose=False) File "/usr/local/lib

2021-10-25 20:40:07    分类:技术分享    android   testing   proxy   androidviewclient

Promise 没有被处理(Promise is not being handled)

问题 我正在使用Jasmine和模拟服务为我的Angular应用程序编写单元测试。 但是,我试图运行的承诺不起作用。 这是服务: CreateItemController = $controller('CreateItemController', { ItemService: { createItem: function(data) { console.log('Service running'); var defer = $q.defer(); defer.resolve('1'); return defer.promise; } 考试: it('should create an item', function() { var created = false; $scope.createItem().then(function(response) { // This is not being run console.log("We got through"); created = true; }); expect(created).toBe(true); }) 最后是实际功能: $scope.createItem = function() { var postData = { name: 'Jeans' }; return ItemService.createItem

2021-10-25 20:34:21    分类:技术分享    javascript   angularjs   unit-testing   testing   jasmine

Moq newbie test setup

I'm coming up to speed with the Moq framework and I have a button on a form that launches another form. The client wants the form to launch whether the Click or DoubleClick event is fired off. My understanding of the Moq framework is that it is useful when you want to simulate certain types of actions: (For brevity, I'm only listing a few types of actions) Connect to a database Write to a file Determine network connectivity But I'm not 100% certain on how Moq can interact with Windows controls and events. Can anyone put me in the right direction with a simple example?

2021-10-25 19:20:35    分类:问答    unit-testing   testing   moq

Error when executing multiple specs in firefox or edge or chrome in cypress

To Be precise, execution is not happening when i run multiple spec files in firefox or edge or chrome browser. execution stops with following error Error: read ECONNRESET at TCP.onStreamRead (internal/stream_base_commons.js:201:27) { errno: 'ECONNRESET', code: 'ECONNRESET', syscall: 'read' } Error: read ECONNRESET at TCP.onStreamRead (internal/stream_base_commons.js:201:27) For Chrome, even though when using "chromWebSecurity": false in cypress.json, till 7 - 8 specs(number varies) it will run after it stops execution and shows following error Failed to connect to Chrome, retrying in 1 second

2021-10-25 18:41:16    分类:问答    javascript   testing   frontend   cypress

赛普拉斯 - 单击后记录请求的响应数据()(Cypress - log response data from an request after a click())

问题 虽然我知道这可能不被视为最佳实践,但我想要实现的是在整个 UI 中创建记录后从数据库中静默删除记录。 htat方式我想尽可能保持我们的测试环境清晰,减少测试数据的噪音。 在我的测试通过单击 UI 创建新记录后,我等待 POST 请求完成,然后我想从响应中提取 id(因此我可以重用它来通过调用cy.request('DELETE', '/id') )。 这是我作为展示的示例测试。 我想知道为什么这个例子中没有记录任何内容。 it('GET cypress and log', () => { cy.server() .route('**/repos/cypress-io/cypress*') .as('getSiteInfo'); cy.visit('https://www.cypress.io/dashboard'); cy.get('img[alt="Cypress.io"]') .click() .wait('@getSiteInfo') .then((response) => { cy.log(response.body) }) }) 据我从这里看到 https://docs.cypress.io/api/commands/wait.html#Alias 这应该没问题。 回答1 您的代码包含两个问题。 第一: click会触发一个新页面被加载,但 cypress

2021-10-25 18:38:09    分类:技术分享    testing   cypress   e2e-testing   qa

测试 Vuetify (Vue.js) - 挂载的第二次调用引发错误(Testing Vuetify (Vue.js) - Second call on mount throws error)

问题 我目前在测试我的 Vue 应用程序时遇到了一种行为(特别是当包含 vuetify 时)。 我使用 Jest 作为测试运行器,但在使用 mocha 时遇到了相同的行为。 首先要注意的是,问题只发生在@vue/test-utils 的挂载上,而不是shallowMount。 此外,它只有在您使用 mount 两次时才会发生(我想原因是 Vue 对象的污染,但稍后会详细介绍)。 现在我的组件只是一个基本 v-data-table 的包装器,其属性值绑定到它的项目和一些用于复选框而不是文本的自定义插槽。 现在的问题。 首先,这是我测试的第一个变体的样子(基本上就是 vuetify 推荐的方式。看看这里。由于测试本身并不重要,我只希望 true 在这里为真 import Vue from 'vue'; import Vuetify from 'vuetify'; import { mount, createLocalVue, shallowMount } from '@vue/test-utils'; import PermissionTable from '@/components/PermissionTable.vue'; import { expect } from 'chai'; const localVue = createLocalVue(); // Vue.use is

2021-10-25 17:20:07    分类:技术分享    javascript   vue.js   testing   vuetify.js   vuejs3

设计一个单元测试框架,用于在 CLIPS 中为 CLIPS 规则编写自定义测试,使用多文件设置(Designing a unit-test framework for writing custom tests in CLIPS for CLIPS rules, using a multi-file setup)

问题 我想制作一个类似单元测试的框架,允许我为单个规则编写自定义测试。 我希望每个测试都在它自己的文件中,即test_R1.clp将是规则R1的测试文件。 每个测试都应该能够加载它自己的事实文件。 我尝试了以下许多变体,包括为每个文件使用不同的defmodule 。 我想在 CLIPS 中做的事情甚至可能吗? 如果是这样,还需要什么来完成这项工作? 我想通过以下方式运行我的测试: $CLIPSDOS64.exe -f2 .\test_all.clp 在当前示例中,我得到的错误是[EXPRNPSR3] Missing function declaration for setup-tests. 我得到了一个单独的测试,使用每个文件的唯一defmodule正确工作(即测试框架的 UNITTEST 和 test_R1 文件的 R1)。 但是,由于加载文件时或在其他文件中定义函数时焦点语句之间的自动切换,我仍然会出错。 我查看了基本和高级 CLIPS 编程指南,但如果我错过了某些内容,请告诉我。 其他具体问题: 由于某些测试可能会加载覆盖现有事实的事实,我如何防止因重新定义现有事实而出错? 我需要在运行每个测试之间做一个(clear)吗? 测试框架.clp: ;;; File: TestingFramework.clp (defglobal ?*tests-counter* = 0)

2021-10-25 17:13:39    分类:技术分享    testing   clips

Run Multiple test classes using testNG.xml with different priority

I am trying to run multiple test classes using testNG .xml file Class A ''' @Test( priority = 1 ) public void testA1() { System.out.println("testA1"); } @Test( priority = 2 ) public void testA2() { System.out.println("testA2"); } @Test( priority = 3 ) public void testA3() { System.out.println("testA3"); } Class B ''' @Test( priority = 1 ) public void testA1() { System.out.println("testA1"); } @Test( priority = 2 ) public void testA2() { System.out.println("testA2"); } @Test( priority = 3 ) public void testA3() { System.out.println("testA3"); } Output : It should execute Class A with test set

2021-10-25 17:04:19    分类:问答    eclipse   testing   intellij-idea   testng.xml