2009-07-27 57 views
0

我知道可以在JUnit中使用向导创建一个TestCase或TestSuite,但是如果在测试下的类已经被修改之后如何同步代码,如方法签名修改或新添加的方法。我希望我的TestCases能够在我的TestCases中同步(删除或添加)那些已更改的方法/参数/方法签名。是否可以使Eclipe中的测试类与JUnit测试用例同步?

我试过在谷歌搜索无济于事,也许有一个Eclipse的插件呢?

回答

1

与生产代码结构具有1-1关系的测试是测试气味。将测试写成系统行为的规范(〜每个行为一个测试),而不是根据生产代码生成测试(每个方法一个测试)会更好。

http://blog.daveastels.com/files/BDD_Intro.pdf

当你意识到它的所有有关规定的行为,而不是写测试,贵点的 视图转变引用。突然间,为您的每个生产级别设置一个Test类的想法是可笑的 限制。而用自己的测试方法测试每种方法的想法(在关系中是 )将会是可笑的。

+0

Thx的答复。在发布这个问题后不久,我意识到,基于行为编写测试是一种方式,因此这就是我正在做的。我现在不需要单元测试同步:)我完全支持这个观点(单元测试行为)。加起来,由于方法名称包含它所测试的行为,所以读取测试更容易。 – 2009-10-02 01:30:08

0

如果使用自动重构更改方法签名,则测试用例以及调用方法的所有其他代码将自动更新。

对于新添加的方法,我不知道如何让测试类自动更新。

3

如前所述,只要您使用Eclipse工具重构而不是通过手动重命名等重构,重命名或移动等将自动反映到测试用例中。

至于新方法,不可能自动生成测试。当然,自动生成的代码有一些例外,您可以在其中控制生成,也可以在其中生成测试用例,但对于“普通”手动代码,最好的做法是提供存根(空方法),以及有什么用在那里面?

更好的办法是使用诸如CoberturaEmma,这恰好有一个nice Eclipse plugin,让你看到,你的源代码中,被测试所覆盖哪些代码并且不是一个工具来跟踪code coverage。这就是你需要进行更多测试的报告。

+0

是的,我看到了,我认为有可能是代码覆盖范围之外的东西,但我认为这将做反正:)感谢很多明确的答案 – 2009-07-28 13:38:43