小编Luc*_*ier的帖子

Sinon存根如何在引擎盖下工作?

在过去的几个月里,我一直在使用JavaScript并使用SinonJS来存储某些行为.我已经设法使它工作,我已经存在许多方法,一切都很好.

但我仍然对Sinon如何在桌面下工作有一些疑问.我想我说的是Sinon,但是这个问题可能适用于所有其他用于模拟/存根/间谍的库.

我过去几年最常用的语言是Java.在Java中,我使用Mockito来模拟/存根依赖项和依赖项注入.我以前导入了Class,用@Mock该元素注释并将这个模拟作为param传递给被测试的类.我很容易看到我在做什么:嘲笑一个类并将模拟作为参数传递.

当我第一次开始使用SinonJS时,我看到了这样的事情:

moduleUnderTest.spec.js

const request = require('request')

describe('Some tests', () => {
  let requestStub

  beforeEach(() => {
    requestStub = sinon.stub(request, 'get')
  })

  afterEach(() => {
    request.get.restore()
  })

  it('A test case', (done) => {
    const err = undefined
    const res = { statusCode: 200 }
    const body = undefined
    requestStub
      .withArgs("some_url")
      .yields(err, res, body)

    const moduleUnderTest = moduleUnderTest.someFunction()

    // some assertions
    })
})
Run Code Online (Sandbox Code Playgroud)

moduleUnderTest.js

const request = require('request')
// some code
  request
    .get("some_url", requestParams, onResponse)
Run Code Online (Sandbox Code Playgroud)

它有效.当我们运行测试时,实现request …

javascript unit-testing mocking stub sinon

6
推荐指数
1
解决办法
948
查看次数

使用FasterXML Jackson将String转换为Integer

我正在消耗两个JSON.

第一个将ID作为String.

"details": {
    "id": "316.0"
}
Run Code Online (Sandbox Code Playgroud)

另一个的ID为Integer.

"details": {
    "detailId": 316
}
Run Code Online (Sandbox Code Playgroud)

两个JSON都使用FasterXML映射到两个不同的类.我希望两个ID都是整数.现在他们是String.

如何强制ForceXML将"316.0"转换为Integer,以便轻松比较这两个属性?

java json jackson fasterxml

4
推荐指数
1
解决办法
4670
查看次数

为JUnit类别创建注释

我想创建一个注释作为JUnit类别的语法糖.

我想要实现的目标:

@Test
public void shouldDoSomeTesting() { ... }

@Wip
@Test
public void shouldBeATestWithWorkInProgress { ... }
Run Code Online (Sandbox Code Playgroud)

我尝试过类似的东西(Wip.class):

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)    
@Category(Wip.class)
public @interface Wip {}
Run Code Online (Sandbox Code Playgroud)

但它没有用.如果我这样做,它的工作原理:

@Category(Wip.class)
@Test
public void shouldBeATestWithWorkInProgress { ... }
Run Code Online (Sandbox Code Playgroud)

这可能吗?如果是的话,我在界面上做错了什么?

java junit annotations

4
推荐指数
1
解决办法
269
查看次数

解组json时处理不同类型

我正在使用一个端点(我不拥有并且无法修复),并且该端点返回JSON。

问题在于此JSON可以采用不同的格式:

格式1:

{
  "message": "Message"
}
Run Code Online (Sandbox Code Playgroud)

要么

{
  "message": ["ERROR_CODE"]
}
Run Code Online (Sandbox Code Playgroud)

取决于发生了什么。

我希望有一个结构来保存此响应,以便稍后可以检查messagea是字符串还是数组,并正确遵循流程。

在Go中可以做到吗?我认为的第一种方法是具有两个结构,并尝试使用解码string,如果发生错误,请尝试使用解码array

有没有更优雅的方法?

json decode go

2
推荐指数
1
解决办法
63
查看次数

标签 统计

java ×2

json ×2

annotations ×1

decode ×1

fasterxml ×1

go ×1

jackson ×1

javascript ×1

junit ×1

mocking ×1

sinon ×1

stub ×1

unit-testing ×1