标签: tdd

在 servlet 中模拟/生成 SocketTimeoutException


我正在使用一个网络项目:
- Java
- Jetty
- Fitnesse 工具
- 等等。

我很难模拟/生成 SocketTimeoutException,更多信息如下:


用例简化:
我编写了一个 API 来调用主机(WebServer)。在源代码中,如果我收到RemoteException并且是SocketTimeoutException,我需要在其他主机上重试。
一切都很好!

我们如何测试:
是一个 TDD 项目,所以我们有一堆 UT。对于“真实”测试,我们使用上面提到的工具。(健身)

问题”:
我必须模拟服务器中可能发生的许多问题。为此,我编写了一个简单的 servlet 来模拟我的 WebServer。
但是对于这个用例,我需要在我的模拟器中模拟一个 SocketTimeoutException。我想在模拟器中休眠,但我认为这可能会导致客户端请求超时。


如果有人有任何想法或好的提示将非常高兴知道!

提前致谢

java tdd agile soap

0
推荐指数
1
解决办法
5299
查看次数

在TDD中测试双向依赖类

最近我想通过开发一个真实的东西学习TDD,所以我决定使用简单的数据打包器/解包器.在纸上设计后,一切看起来都不错,但是当我尝试编码时,我意识到我不知道如何测试它,所以在TDD中 - 如何做任何事情.

我有两个班:ArchiveReaderArchiveWriter.问题是,当我将某些内容保存到文件中时,ArchiveWriter我无法正常测试它ArchiveReader,没有它我不得不逐字节地比较输出,我认为这不是一个好主意 - 次要的,相关的更改可能会在以后发生.ArchiveReader测试也需要阅读,所以我必须ArchiveWriter用来制作测试包.

TDD在这方面失败了吗?有没有方法来测试这样的案例?

tdd

0
推荐指数
1
解决办法
140
查看次数

你如何为吸气剂和制定者进行单元测试?

我是tdd和mockito web框架的新手.

基本上这是类中的getter方法:

public Long getDeviceManufactureId()
{
    return deviceManufacturerId;
}
Run Code Online (Sandbox Code Playgroud)

我怎么写单元测试?

到目前为止我在想这个:

dem是该类的名称

@Test
public void testGetDeviceManufactureIdreturnsDeviceManufactureId()
{
    assertEquals("Richard", dem.getDeviceManufactureId());
}
Run Code Online (Sandbox Code Playgroud)

java tdd unit-testing

0
推荐指数
1
解决办法
7916
查看次数

Swift-解决测试驱动开发中的构建错误?

我开始学习如何进行测试驱动的开发,并且正在使用Swift。我想有一个测试应该失败,然后编写使它通过所需的代码。据我了解,测试应该成功运行,只是失败。但是,在Swift中,当我尝试编写一个测试来检查对象特定属性的值时,如果该类还没有这样的属性(因为我想在创建之前先编写测试)我没有得到失败的测试,而是在尝试构建和运行测试时出现构建错误。错误是测试正在尝试访问给定对象不存在的属性。我会以错误的方式处理吗?还是这些测试构建中断错误应该是我在Swift中进行TDD时得到的错误?谢谢!

tdd xcode unit-testing ios swift

0
推荐指数
1
解决办法
164
查看次数

在 py.test 中模拟标准库调用

我正在学习如何使用 py.test 编写测试,但我不知道如何模拟外部调用。

假设我有一个测试代码:

应用程序.py:

import random

def trade_robot(stock, price):
    return ' '.join((random.choice(('buy', 'sell', 'keep')), stock))
Run Code Online (Sandbox Code Playgroud)

我想确保我检查 random.choice 的情况,决定我需要购买(并且我想检查它是否正确连接“购买”情况的字符串)。

我的测试代码应该如下所示:

import pytest
from app import trade_robot
import sys

def test_buy_case():
    # some mock magic here
    assert trade_robot('AAPL', 500) == 'buy AAPL'

if __name__ == "__main__":
    pytest.main("-v %s" % sys.argv[0])
Run Code Online (Sandbox Code Playgroud)

“一些模拟魔法”中应该包含什么才能使该测试每次都通过?谢谢!

python tdd pytest

0
推荐指数
1
解决办法
3761
查看次数

单元测试私有字段

我有一个简单的类,其中包含一个列表:

public class SomeClass {

    private AppDataSource appDataSource; // it's interface
    private List<Object> someList;

    ////

    public List<Obejct> loadSomeList() {
        if (someList == null) {
            return appDataSource.getListFromDatabase();
        }
        retrunf someList;
    }
}
Run Code Online (Sandbox Code Playgroud)

关键是 - 我希望该列表仅从DB加载一次.我想对这个功能进行单元测试.我是TDD中的noob,我能做的就是 - 为someList编写一个公共getter和setter,并在单元测试中使用它们.但它在概念上是错误的 - 我不希望类的客户端使用此成员变量directlty.

在这种情况下如何正确测试方法?

java tdd junit unit-testing

0
推荐指数
1
解决办法
3331
查看次数

如何为 Dao 类编写 Junit 测试用例?

这是我的 dao 类,谁能告诉我这个 dao 方法的模式。

public String getProcessNames() throws IOException{
    Gson gson=new Gson();
    JSONObject output=new JSONObject();
    String responseGson;
    Session session = ConnectionDAO.getBoltSession();
    String query = qpObj.getQueryValue("neo4j.processMonitor.getProcessNames");
    StatementResult result = session.run(query);
    JSONArray dataArray= new JSONArray();
    try{
        while ( result.hasNext() )
        {
            Record record = result.next();
            responseGson=gson.toJson(record.asMap());
            JSONObject responseJson=new JSONObject(responseGson);
            dataArray.put(responseJson.get("ProcessName"));
            output.put("results",dataArray);

        }
    }
    catch(Exception e){
        e.printStackTrace();
    }
    finally{
        if(session.isOpen()){
            session.close();
        }
    }
    return output.toString();
}
Run Code Online (Sandbox Code Playgroud)

或者任何人都可以提供直接链接以供参考,这对我有好处。谢谢

tdd junit clover

0
推荐指数
1
解决办法
4778
查看次数

在ReactJS中使用jest和酶测试回调函数?

我是TDD的新手,我想在Age组件中测试我的回调函数:我的Age.js文件如下:

import React, { Component } from "react";
import { connect } from "react-redux";
import actions from "../../actions";
import TextFieldComponent from "../Module/TextFieldComponent";

export class Age extends Component {

  ageValueCallBack = age => {
    console.log("value is : ", age);
    this.props.selectAgeAction(age)
  };

  render() {
    const props = {
      onChange: this.ageValueCallBack,
      hintText : 'Eg. 25',
      floatingLabelText: "Age(Years)",
      value : (this.props.usersData) ? this.props.usersData.basic.age : null
    };
    return <TextFieldComponent {...props} />;
  }
}

function mapStateToProps({ usersData }) {
  return {
    usersData
  };
} …
Run Code Online (Sandbox Code Playgroud)

javascript tdd reactjs jestjs enzyme

0
推荐指数
1
解决办法
3989
查看次数

使用 mocha 和 request 测试 mongodb 数据库

到目前为止,我有 2 个问题,我正在寻找答案 3 天,但无法弄清楚。
1. 测试时应该什么时候连接数据库?
2. 我在运行测试时总是遇到错误:{ "before each" hook for "should list all books on /book GET" } 并且还没有找到解决方案或确切原因。我究竟做错了什么?到目前为止,我唯一的答案是不要在 beforeEach() 中两次调用 done() 但我没有这样做......

var chai      = require('chai'),
    expect    = chai.expect,
    request   = require('request'), 
    mongoose  = require('mongoose'),
    Book      = require('./../models/book');
// book = require('../model')

mongoose.createConnection('mongodb://localhost/books');

describe('Testing the routes', () => {
    beforeEach((done) => {
        Book.remove({}, (err) => {
            if (err) {
                console.log(err);
            }
        });
        var newBook = new Book();
        newBook.title  = "Lord Of The Rings";
        newBook.author = "J. …
Run Code Online (Sandbox Code Playgroud)

tdd request mongodb node.js

0
推荐指数
1
解决办法
4558
查看次数

NodeJS 单元测试 RabbitMQ / Amqplib

我正在尝试为我的项目开发测试,我有一个连接到rabbitmq并消耗队列的文件,但我在测试它时遇到了问题

const amqp = require('amqplib/callback_api');

const rabbitConsumer = (io) => {
  setTimeout(() => {
    amqp.connect('amqp://rabbitmq', (error0, connection) => {
      if (error0) {
        throw error0;
      }
      connection.createChannel((error1, channel) => {
        if (error1) {
          throw error1;
        }
        const queue = 'message';

        channel.assertQueue(queue, {
          durable: false,
        });

        console.log(' [*] Waiting for message', queue);

        channel.consume(
          queue,
          (data) => {
            console.log(' [x] Received data:', data.content.toString('utf-8'));
            io.emit('sendMessage', data.content.toString('utf-8'));
          },
          {
            noAck: true,
          }
        );
      });
    });
  }, 10000);
};

module.exports = rabbitConsumer;
Run Code Online (Sandbox Code Playgroud)

可以测试这个文件吗?我如何使用 JEST 或任何其他库来做到这一点?

tdd unit-testing rabbitmq node.js ts-jest

0
推荐指数
1
解决办法
4610
查看次数

标签 统计

tdd ×10

unit-testing ×4

java ×3

junit ×2

node.js ×2

agile ×1

clover ×1

enzyme ×1

ios ×1

javascript ×1

jestjs ×1

mongodb ×1

pytest ×1

python ×1

rabbitmq ×1

reactjs ×1

request ×1

soap ×1

swift ×1

ts-jest ×1

xcode ×1