C# Specflow/Watin页面检查

C# Specflow/Watin页面检查,c#,watin,bdd,specflow,C#,Watin,Bdd,Specflow,我们刚刚开始使用specflow和watin编写验收测试。我们正在努力解决一些常见的做法 检查用户是否在特定页面上的好方法是什么?例如,如果用户x执行操作y,则应将其重定向到页面z。在第z页上测试它们的首选方法是什么?我们已经尝试过检查URL、页面标题、页面标题等 它们都能工作,但什么是最可靠的呢?我在这里看到两个案例 首先,一些操作被触发,您希望确保它重定向到正确的页面。在这种情况下,我认为Url在检查中是最好的,因为它是唯一的,并且可以合理地进行更改 第二个是你浏览(转到)一个页面并想检查你

我们刚刚开始使用specflow和watin编写验收测试。我们正在努力解决一些常见的做法

检查用户是否在特定页面上的好方法是什么?例如,如果用户x执行操作y,则应将其重定向到页面z。在第z页上测试它们的首选方法是什么?我们已经尝试过检查URL、页面标题、页面标题等


它们都能工作,但什么是最可靠的呢?

我在这里看到两个案例

首先,一些操作被触发,您希望确保它重定向到正确的页面。在这种情况下,我认为Url在检查中是最好的,因为它是唯一的,并且可以合理地进行更改


第二个是你浏览(转到)一个页面并想检查你是否在那里。同样,Url是好的,但您可能希望检查一些已知文本,以便知道页面也已成功加载(甚至检查它是否不包含“错误”)。我通常会将文本值存储在一个资源文件中,并为它们命名,例如HomePageLoadedText=“Welcome back Bob”。我认为这会使他们更加明确,如果他们失败了,它更具可读性。

我过去做过的技术上最正确的方法是,我们在每个页面中都有一个唯一的页面标识符。对于我们的系统来说,它是在一个内部应用程序上用于支持目的的“你能看看左下角并告诉我你在哪一页吗?”。如果您的开发人员要实现类似的东西,可以在测试中进行调优,那么这将是最好的方法

如果这是不可能的(在很多情况下可能不是),那么您需要找到一种方法来唯一地标识您所在的页面。URL应该是全局唯一的,所以这可能是一个好方法,除了不能确认为给定URL显示的页面是否正确

通常,如果您正在与导航到的页面上的组件进行交互(好像您不在正确的页面上),那么这种类型的测试实际上是不必要的,当您尝试执行某些操作时,您的测试将失败