2017-10-05 46 views
-1

在我们应用程序的表格底部,我们有一个字段,显示“显示x到x个条目的x”,其中x是表中条目的数量。如何动态获取变化字段中的记录数量?

我想创建一个函数,可以保存上述字符串中的最后'x'值,以便在记录被删除后将其与新值进行比较。

例如...

  • 的文字是, '显示项目1 - 100 100'
  • (我想最后的100号码存储为X的断言)
  • 删除1记录
  • 的文字是, '显示项目1 - 99的99'
  • (我想最后的99号码存储为y表示断言)

有没有任何直接的方式来存储这些值与C#或硒?问题是,当运行测试时,由于之前运行的其他测试,上面的x和y值将始终不同。我知道从长远来看,我应该有一致的数据进行测试,但现在这是以后的问题。

+0

你在Selenium上使用什么测试框架?他们几乎所有的人都提供了某种形式的测试环境来存储状态,尽管如果您在单个测试中这样做了本地变量的话。 – Fenton

+0

我在硒上使用NUnit。 – JOberloh

回答

1

最简单的存储是局部变量,漂亮,干净,包含:

[TestFixture] 
public class MyTests { 
    [Test] 
    public void YourTest() { 
    var number = 0; 

    number = myPageObjectModel.GetResultCount(); 

    myPageObjectModel.Delete(); 

    Assert.AreEqual(number - 1, myPageObjectModel.GetResultCount()); 
    } 
} 

你可以存储在类的数量,这将是更广泛的应用,但我觉得这会启动连接您的测试,他们将不得不按照特定的顺序运行,所以我建议从一个局部变量开始,如果可以的话。

如果您正在使用强制您在不同类中的方法(如SpecFlow)之间跳过的技术,最好在场景上下文类中的步骤之间保留状态。

+0

另一个解决方案是修改测试,而不是在框架中创建新功能。我可以将TableInformation的字符串存储为x,创建一个新记录,删除新记录,然后将TableInformation作为y,并将Assert.That(x = y)。感谢您让我思考! – JOberloh