嵌套上下文组织的Python单元测试测试当写RSpec的测试,我发现它使用了非常明确的和有用的嵌套上下文结构:基于类似的RSpec
describe "a laptop" do
before(:each) do
end
context "progamming" do
before(:each) do
end
it "compiles programs" do
end
context "with an external monitor" do
it "shows editors in multiple displays" do
end
end
end
context "video gaming" do
before(:each) do
end
context "with normal graphic card" do
before(:each) do
end
it "can not play League of Legends" do
end
end
context "with expensive graphic card" do
before(:each) do
end
it "can play League of Legends" do
end
end
end
end
这是很容易分享/干那些设置和当它们嵌套时拆除代码,并且对于上下文结构,它还有助于“思考”规范的覆盖范围。我想知道我们通常如何编写Python单元测试来实现这一点。或者这个哲学是不同的?
看起来我们可以通过inheriting the test class实现类似的设置/拆卸代码共享,但是仍然存在一些小问题,并且将它们分开放在不同的类中似乎不是一个非常易读/可维护的结构,例如2层更深。
这是非常有用的,谢谢你的参考!我之前尝试过Cucumber进行网站集成测试,并且运行良好。我不确定将它用于其他类型的情况较少的东西,例如数据库ORM模型和实用程序类。对于这些情况似乎有点矫枉过正,也许不是在单个项目中使用BDD框架和Unittest的最佳解决方案。有什么建议?谢谢! – 322896 2014-11-25 17:46:05
自动化测试发生在许多级别,单元测试覆盖并不意味着您不需要集成测试和功能测试的工具(就像您使用Selenium一样)。只要测试的结构和何时使用BDD工具的界限清晰,两者都不应该成为问题。 – Screamer 2017-02-08 09:32:54