2011-08-19 87 views
0

下面是我在做什么:如何使用另一种测试方法的作业制作测试方法?

private String connection = ""; 

[TestMethod] 
public void Connect() 
{ 
    Encrypter encrypter = new Encrypter("64bit"); 

    String keyword = encrypter.Decrypt("5465465465=="); 

    // Check if crypter is changed 
    Assert.AreEqual(true, encrypter.SetCrypter("AES")); 

    this.connection = encrypter.Decrypt 
     ("65465465466", keyword); 
} 

[TestMethod] 
public void NhibernateFluentTest() 
{ 
    NHibernate.ISessionFactory session = 
     Fluently.Configure().Database(PostgreSQLConfiguration.Standard.ConnectionString(this.connection)).BuildSessionFactory(); 

    Assert.IsNotNull(session); 
} 

“连接”的测试方法是改变其必须使用“NhibernateFluentTest”测试方法的连接字符串,但它只是不同的方法和第二个看不到第一个。我该如何解决这个问题?

+0

你试图在两种方法之间共享什么数据?如果有人要与另一个人谈话,那么你必须打电话给另一个人。 – Zenwalker

+0

@zenwalker我不认为这是可能的。他们是测试方法。 – Cynede

+0

那么,你仍然可以从其他方法调用1方法,这是一种测试方法。就像你有私人方法一样。 – Zenwalker

回答

3

要设置可在测试过程中安全重复使用的通用状态,请使用适当的属性创建Setup方法。在MSTest中,我相信这是[TestInitialize],但你可以找到它。有一种类似的方法来拆除国家。这些方法将在每次测试之前和之后运行。

+0

除了这个评论,如果你发现自己需要跨测试重用代码,我通常会创建一个单一级别的继承,并且在SetUp属性方法中将这个通用代码 –

2

测试不应该依赖于其他测试。如果测试失败或成功取决于是否执行了另一个测试,将很难依赖测试结果。

我建议你重构你的代码,以便有一种方法可以根据需要为两个测试准备字符串,并从它们中调用该方法。

相关问题