2010-03-17 136 views
0

我有一组类,即数据传输对象,服务实现对象和数据访问对象。我目前在服务实现对象中有业务逻辑;它使用dao获取数据来填充发送回客户端/ gui代码的dto。业务逻辑是否属于服务层?

问题是我无法创建服务实现对象(它是一个servlet)的轻量级junit测试;我认为业务逻辑应该在其他地方,但我能想到的唯一事情就是将业务逻辑放在dao中,或者放在dao和服务实现之间的另一层中。

还有其他的选择,还是我在想这个错误的方式?

这是一个GWT/App Engine项目。

回答

1

我不明白你为什么不能单元测试servlet,例如根据this SO question(还有其他类似的主题) - 你能解释一下吗?

编辑:如果没有特殊原因,我建议你应该在服务层中的业务逻辑(它似乎属于)和单元测试的地方 - 在SO问题建议的方法我刚引述,例如,似乎相当轻量级(虽然我没有具体测试)。

+0

其他则无知,无理由。谢谢。 – 2010-03-17 03:06:25

+0

好吧,那么我认为你应该保持服务层的业务逻辑并对其进行单元测试 - 在我引用的SO问题中提出的方法似乎足够轻量级(尽管我没有专门测试它们)。 – 2010-03-17 03:39:07

0

你可以把你的业务逻辑在它自己的jar文件,并从与网络(servlet的)整合

该servlet只是一个协议,这是不是你的业务逻辑,更集成独立测试这个组件点。

通过胖客户端可以很容易地想象到公开相同的业务逻辑。 同样在这种情况下,您不应该隐藏按钮或链接下的业务逻辑。

还有一点需要注意:你可能想看看MVC框架;支柱。您的模型将保持业务逻辑。

希望这会有所帮助。

0

该servlet是控制器,这是一个非常大的错误,把业务逻辑放在那里。

+0

因为它是一个控制器! – 2012-12-19 16:37:15