gpt4 book ai didi

unit-testing - 单元测试对象转换器

转载 作者:行者123 更新时间:2023-11-28 19:58:09 25 4
gpt4 key购买 nike

您如何测试或完全测试将其他数据模型/结构转换为您的数据模型的类?

interface ToTradeObjectConverter<T> {
public Trade convertToTrade (T source);
}

public class Trade {
// here we have ~ 100 fields, like dates, account, currencies, etc.
}

转换器只是通过 setter 填充 Trade,从另一个对象获取数据或解析文本或 XML 或其他任何内容。

你会测试这样的类吗?如果是这样,什么是好的方法?我不想模拟 (EasyMock) 参数并添加 100 行“easy mock expect proper getter and setter invoked”。

最佳答案

如果这些类是自动生成的,或者如果它们是手写的但从不对输入做任何有趣的事情(它们只是复制它),并且如果您有集成覆盖,我不会测试它们。 (我在这里从 BDD 的角度出发:首先通过验收/集成测试,然后根据需要对其余部分进行单元测试。)

如果这些类做了一些有趣的事情,和/或如果它们没有集成覆盖,请测试它们。

我绝对不会使用模拟。这些似乎是简单的类,它们在内存中完成所有工作。我认为测试这些类的秘诀就是为它们提供所有强大的 .equals 方法(如果它们还没有的话)。您可能可以生成它们。然后你的单元测试将是这样的

public class ToTradeObjectConverterTest {
@Test
public void convertToTradeReturnsTheExpectedObject() {
TradeSource source = new TradeSource(/* whatever goes here */);
Trade trade = new ToTradeObjectConverter<TradeSource>().convertToTrade(source);
Trade expectedTrade = new Trade(/* whatever goes here */);
assertThat(expectedTrade, equalTo(trade));
}
}

关于unit-testing - 单元测试对象转换器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23415362/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com