2011-02-01 68 views
4

我试图单元测试建设者风格的图案,看起来像这样(mockedObject注入功能,所以我可以嘲笑它):我试图找出测试Builder模式

Thing thing = 
    mockedObject.createThing() 
    .addParam1() 
    .addParam2(mockedObject.createParam2() 
        .someData() 
        .build()) 
    .build(); 

mockedObject.use(thing); 

如何测试它(使用JUnit和Easymock),而不必模拟出整个构建器对象。我需要测试的结果对象是param1param2是用特定值设置的。

嘲笑整个构建器模式会使测试非常脆弱,而不是我应该先测试的东西。

有没有更好的方法来测试这个?

回答

0

我想解决如何测试这个(使用JUnit和Easymock),而不必嘲笑整个生成器对象。我需要对结果对象进行测试的是param1和param2被设置为特定的值。

嘲弄了整个生成器模式 将使测试非常脆 及其不是我应该测试 开始。

究竟是什么行为你想在这里测试?如果您正在测试构建器是否正确构建对象,则构建器不是您应该嘲笑的内容。

也许问题会更清楚,如果你发布你正在测试的方法和更完整的测试代码,但现在看起来根本不像测试。

+0

我想要测试mockedObject.use()与特定属性设置的对象调用。不幸的是,mockedObject也是构建器。我已经对构建器进行了测试,我所关心的只是在此函数中设置了某些属性。 – laurencer 2011-03-06 06:33:50