首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏7DGroup

    (翻译)测试替身— Fakes, Mocks 和 Stubs

    原文:https://blog.pragmatists.com/test-doubles-fakes-mocks-and-stubs-1a7491dfa3da 一、前言 自动化测试中,我们常会使用一些经过简化的 四、Mock Mocks are objects that register calls they receive. In test assertion we can verify on Mocks that all expected actions were performed Mocks 代指那些仅记录它们的调用信息的对象 ,在测试断言中我们需要验证 Mocks 被进行了符合期望的调用。 深入阅读: Test Double - Martin Fowler Test Double - xUnit Patterns Mocks Aren't Stubs - Martin Fowler Command

    1.6K30发布于 2021-07-14
  • 来自专栏Cellinlab's Blog

    React 应用架构实战 0x4:模拟 API

    配置 Worker: // src/testing/mocks/browser.ts import { setupWorker } from "msw"; import { handlers } from // src/testing/mocks/server.ts import { setupServer } from "msw/node"; import { handlers } from ". "; export type MSWWrapperProps = { children: ReactNode; }; require("@/testing/mocks/initialize"); // src/testing/mocks/seed-db.ts import { testData } from "../test-data"; import { db } from ". 打开 src/testing/mocks/handlers/index.ts 文件并更改为以下内容: // src/testing/mocks/handlers/index.ts import { rest

    69930编辑于 2023-05-17
  • 来自专栏云前端

    [译] 在 vue-test-utils 中 mock 全局对象

    mocks 加载选项 mocks 加载选项 是一种将任何属性附加到 Vue.prototype 上的方式。 mocks 选项用处多多,而我觉得最最常用的正是开头提到过的那三样。 还是 vue-i18n 的例子: import VueTestUtils from "@vue/test-utils" VueTestUtils.config.mocks["mock"] = "Default 再次运行测试,这次移除了 mocks 加载选项并用 console.log 打印了 wrapper.html()。

    (译注:依然无法应付复杂的翻译) 总结 本文论述了: 在测试用例中使用 mocks 以 mock 一个全局对象 用 config.mocks 设置默认的 mock

    2.1K10发布于 2020-06-15
  • 来自专栏FunTester

    Go 语言 Mock 实践

    (*s3.CreateBucketOutput, error) { return m.createBucketFunc(ctx, params, optFns...) } func (m mockS3Client 此时,可以在 Mock 中添加状态字段: type mockS3Client struct { createBucketCalled bool headBucketCalled bool } func (m *mockS3Client) CreateBucket(ctx context.Context, params *s3.CreateBucketInput, optFns ... 这时候可以“借鸡生蛋”,使用如 gomock 这样的 Mock 框架: // 使用 gomock 生成 mock 代码 //go:generate mockgen -destination=mocks/ mock_s3client.go -package=mocks github.com/FunTester/s3mock s3Client func Test_UsingMockGen_FunTester

    40210编辑于 2025-04-23
  • 来自专栏啄木鸟软件测试

    浅谈前端测试

    /getFile')  describe('readFile', () => {  const mocks = {  fs: {  readFileSync: jest.fn()  },  other: {  text: 'Test text'  }  }  beforeAll(() => {  jest.mock('fs', () => mocks.fs)  })  test('read file success run console.log', () => {  mocks.fs.readFileSync.mockImplementation(() => this.mocks.other.text (console.log).toBeCalled()  })  })   上面代码简单的实现了一个读取文件是否成功的测试,先别急着纠错,这段测试本身是错的,下面慢慢分析   我们在最开始创建了一个 mocks id', () => {  expect(getId(mocks.list)).toEqual([1, 2])  })   直到有一天代码变成了 module.export = (list) =>

    2.2K10发布于 2019-12-12
  • 来自专栏iOS开发~

    iOS_单元测试三之OCMock使用

    OCMock 文章目录 OCMock 1、创建模拟对象 Creating mock objects 1.1、模拟实例 Class mocks 1.2、模拟代理 Protocol mocks 1.3、严格模拟 类和协议 Strict class and protocol mocks 1.4、部分模拟 Partial mocks 1.5、观察者模拟 Observer mocks 2、存根方法 Stubbing and expectations 7.1、设置期望-运行-验证 Expect-run-verify 7.2、严格的模拟和快速失败 Strict mocks and failing fast 7.3、存根和期望 Stub actions and expect 7.4、延迟验证 Verify with delay 7.5、按顺序验证 Verifying in order 8、观察者模拟 Observer mocks 1.5、观察者模拟 Observer mocks 用官方的XCTNSNotificationExpectation 2、存根方法 Stubbing methods 2.1、模拟方法的返回值 Stubbing

    3.9K20编辑于 2022-07-20
  • 来自专栏软件测试技术

    python最简单的mock方式,使用pook模拟 HTTP 请求结果的库

    Headers:', res.headers) print('Body:', res.json()) print('Is done:', pook.isdone()) print('Pending mocks :', pook.pending_mocks()) print('Unmatched requests:', pook.unmatched_requests()) 可链接API DSL,模拟访问post Status:', res.status_code) print('Body:', res.json()) print('Is done:', pook.isdone()) print('Pending mocks :', pook.pending_mocks()) 更多API说明: https://pook.readthedocs.io/en/latest/api.html#core-api

    1.3K30编辑于 2022-05-16
  • 来自专栏腾讯移动品质中心TMQ的专栏

    Jest基本使用方法以及mock技巧介绍

    2.2.3  在需要mock的模块目录临近建立目录__mocks__  这里面分两种情况: 2.2.3.1  对于用户目录下面的模块 例如我们需要mock目录models下面的user模块,那么我们就需要在 models下面新建__mocks__目录(这里要区分大小写),然后新建文件user.js。 2.2.3.2  对于node_modules下面的模块 如果我们需要mock的模块是一个Node的模块(如lodash ),那么 __mocks__应该是挨着node_modules目录(除非你手动配置的 如果需要mock的模块是scoped模块,那么我们创建的mock的名字需要一致,例如, mock模块名字为 @scope/project-name,那么就需要创建__mocks__/@scope/project-name.js 可以参考: https://facebook.github.io/jest/docs/en/es6-class-mocks.html 总结 对于简单的函数的mock,推荐使用jest.fn 来进行mock

    9.2K50发布于 2018-06-26
  • 来自专栏方球

    golang path 路径包

    /file/mocks") // dir -> ". /file/" // file -> "mocks" Dir 获取除去最后部分的路径, 即 Split 返回的 dir func Dir(path string) string fmt.Println(

    2.3K20发布于 2019-08-23
  • 来自专栏禅林阆苑

    前端自动化测试实践03—jest异步处理&mock

    __mocks__ 文件替换 ajax 如果需要测试 mock.js 中 ajax 请求 export const fetchData = () => { return axios.get('/ __ 文件夹下建立同名文件,如 __mocks__/mock.js export const fetchData = () => { return new Promise ((resolved, reject) => { resolved('(function(){return 123})()') }) } 测试用例,对于在 mock.js 但不在 __mocks_ /es6-class', () => {const Util = jest.fn() ... }) 【3】在 __mocks__ 中编写同名文件覆盖 __mocks__ 文件除了可以替换 ajax 请求 ,还能替换 class 等,编写 __mocks__/es6-class.js const Util = jest.fn(() => { console.log('constructor --') })

    6K85发布于 2019-10-31
  • 来自专栏DevOps

    Go:微服务架构下的单元测试(基于 Ginkgo、gomock 、Gomega)

    /mocks/mrepo/user.go -package=mrepo . /mocks/mrepo/user.go -package=mrepo . 执行完之后,你会看到多出来 service/user/internal/mocks/mrepo/user.go 文件 2. GinkgoT()) cleaner = ctl.Finish ctx = context.Background() }) var _ = AfterEach(func() { // remove any mocks "github.com/onsi/gomega" "user/internal/biz" "user/internal/mocks/mrepo" ) var _ = Describe("UserUsecase

    95711编辑于 2024-03-29
  • 来自专栏Reck Zhang

    Design Patterns 30 - Mocking

    But mocks and tests are still making my life hard! Ever run into this situation? I feel like if a test is working with more than 3 mocks then it is a red flag - time for a rethink on Without mocks you may have to set up databases and other third parties things just to test simple business

    37730发布于 2021-08-11
  • 来自专栏DingLin 随笔

    Unit Testing

    (css|scss)$': '<rootDir>/__mocks__/styleMock.js' } } <rootDir>/__mocks__/styleMock.js 文件代码 module.exports 如果要使用 Enzyme 辅助库的话,需要额外配置一下 配置 setupFiles 字段,该字段的含义是在初始化运行单元测试时,需要执行的文件 { setupFiles: ['<rootDir>/__mocks __/enzymeMock.js'] } <rootDir>/__mocks__/enzymeMock.js 文件代码 import Enzyme from 'enzyme' import Adapter

    1.8K20编辑于 2022-04-01
  • 来自专栏光城(guangcity)

    优雅的使用Go进行单元测试

    首先,使用mockgen生成相应mock_service.go mockgen -destination=mocks/mock_service.go -package=mocks com.gcx Service ctrl := gomock.NewController(t) mockedService := mocks.NewMockServiceClientProxy(ctrl) serStubs := gostub.Stub

    3.3K20发布于 2020-07-20
  • 来自专栏云前端

    [译] Vuex 之单元测试

    Jest 提供了 ES6 Class Mocks,非常适于 mock axios。 至少还有一项潜在的改进可以为之,那就是将 axiosmock 实现为一个 manual mock(https://jestjs.io/docs/en/manual-mocks)。 这包含在 node_modules 的同级创建一个 __mocks__ 目录并在其中实现 mock 模块。Jest 将自动使用 __mocks__ 中的 mock 实现。 如果你有好多使用了 Vuex store 的组件要测试,一个替代方法是使用 mocks 加载选项,用以简化 store 的 mock。 4.2 - 使用一个 mock 的 store 通过使用 mocks 加载选项,可以 mock 掉全局的 $store 对象。

    4K20发布于 2020-06-15
  • 来自专栏小程序深入

    工具自动生成 自动化测试脚本

    text', isSingle: true})} done() })` } }, // 提交流程模版 未改造版本 submit: (fn) => { const { mocks ].value': 'test1', 'formItems[1].value': '11111111111', [`formItems[${imgIndex}].value`]: mocks ['img'], [`formItems[${imgIndex}].tempFilePaths`]: mocks['img_url'], [`formItems[${imgIndex 配置文件通过编写对象配置文件,生成对应的文件提单流程测试格式: const config = { isSingle: true, fileName: 'submitTotal', mocks

    1.9K200编辑于 2022-09-20
  • 来自专栏网管叨bi叨

    Go项目里的API对接,这样做Mock测试才舒服

    ioutil.ReadAll(res.Body) st.Expect(t, string(body), "foo foo") // Verify that we don't have pending mocks ioutil.ReadAll(res.Body) st.Expect(t, string(body), "foo foo") // Verify that we don't have pending mocks res.Body) st.Expect(t, string(resBody)[:13], `{"bar":"foo"}`) // Verify that we don't have pending mocks ioutil.ReadAll(res.Body) st.Expect(t, string(body), "foo foo") // Verify that we don't have pending mocks

    30510编辑于 2025-02-06
  • 来自专栏睿Talks

    React单元测试:Jest + Enzyme(一)

    安装完后,在项目的根目录新建__jest__文件夹和__tests__文件夹,此时__mocks__文件夹我们暂时不管,如下图所示: mudules文件夹将存放各个模块的单测代码,而utils文件夹里面是对一些公用的函数写的测试代码 jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/__jest__/__mocks 对于多媒体文件(jpg/png等),我们可以简单的手动mock一下: // <rootDir>/__jest__/__mocks__/fileMock.js module.exports = 'test-file-stub

    2.1K20编辑于 2022-06-14
  • 来自专栏cnblogs

    Webpack单元测试,e2e测试

    /mocks/demo' describe('demo_spec', function(){ it('body',() => { init(); let button data.btnName; expect(button.textContent).toEqual(data.btnName); }) }); src/ma:会向dom插件一个button标签 mocks var template = { 'title': 'Demo01', 'btnName|1-3': '*' } export default Mock.mock(template); mocks

    2.9K100发布于 2018-01-17
  • 来自专栏Gcaufy的专栏

    小程序开发仿微信界面 DEMO

    MOCK数据设计 通过需求分析得到只需要两份基础数据: 联系人数据 初始聊天记录数据 其对应的数据表结构如下: 因此我们可以使用js构建这两份数据表作为原始数据, 目录结构设计大致如下: src mocks ); let table = users.map((v) => { return { name: v.name, id: v.id, icon: `/mocks /mocks/contact'; import m_history from '.. /mocks/history'; export default { // 拉取用户信息 getUserInfo () {}, // 拉取与某个用户的聊天历史记录 getHistory

    20.6K30发布于 2017-05-10
  • 领券