我正在测试一个执行一些颠覆交互的应用程序,例如提交、添加、统计等。
什么是让我开始模拟我使用的颠覆客户端和工作目录等的好方法。这将在 Python 中。
因此,例如,当我检查存储库是否是有效存储库时,我会尝试与网络资源建立 http 连接。如果我尝试连接到不存在的资源并且只是让我的模拟客户端引发该异常等,我是否检查我的应用程序中抛出了什么异常?我在正确的道路上吗?
我正在测试一个执行一些颠覆交互的应用程序,例如提交、添加、统计等。
什么是让我开始模拟我使用的颠覆客户端和工作目录等的好方法。这将在 Python 中。
因此,例如,当我检查存储库是否是有效存储库时,我会尝试与网络资源建立 http 连接。如果我尝试连接到不存在的资源并且只是让我的模拟客户端引发该异常等,我是否检查我的应用程序中抛出了什么异常?我在正确的道路上吗?
是的,您走在正确的道路上(尽管我有一两个警告)。
比“提出正确的例外”更普遍:策略是确保无论 SVN 如何响应您的应用程序的命令,您的应用程序都会按照您的意愿响应。
对我来说,模拟第三方代码时最大的挑战是描述:
但是一旦你描述了这些东西,嘲笑通常是直截了当的:
一个警告。我不确定“如果我尝试连接到不存在的资源并让我的模拟客户端引发该异常,请检查我的应用程序中抛出了什么异常”是什么意思。听起来好像(至少在那种情况下)您的应用只是将 SVN 异常传递给其用户。如果这只是您的应用程序如何响应的一个示例,那么可以。但是如果你的意思是一般的事情(即“我的应用程序总是将 SVN 异常传递给它的用户”),我不知道这是否是正确的做法。
关键是让模拟引发真正的 SVN 在这种情况下引发的任何异常,并验证您的应用程序是否做出了正确的响应。您的应用程序的工作可能是: