2017-05-03 93 views
-6

如何從[TestMethod]中獲取「A」的值以在[TestClass]中執行查找?我嘗試將它移到它自己的類中,並且完全脫離了TestMethod,但是我的應用程序最終抓取了生成的下一個數字,而不是測試方法中使用的那個。如何從testmethod獲取c#中字符串的值在C#中

using System; 
using Microsoft.VisualStudio.TestTools.UnitTesting; 

namespace Classic 
{ 
     [TestMethod] 
     public void MyFirstTest() 
     { 
      string A = "L" + (String.Format("{0:MMddyyyy}", SafeRandom.GetRandomNext(10).ToString()); 
      //some test steps go here 
     } 
    } 

[TestClass()] 
public class TestScenario 
{ 

    public void RunLookupMyString() 
    { 

     //Use string above to perform a lookup 

    } 
} 

public class SafeRandom 
{ 
    private static readonly Object RandLock = new object(); 
    private static readonly Random Random = new Random(); 

    public static int GetRandomNext(int maxValue) 
    { 
     lock (RandLock) 
     { 
      return Random.Next(maxValue); 
     } 
    } 

    public static int GetRandomNext(int minValue, int maxValue) 
    { 
     lock (RandLock) 
     { 
      return Random.Next(minValue, maxValue); 
     } 
    } 
} 
+0

這段代碼甚至不會編譯。你期待它做什麼? – RJM

+0

@RJM我只是想從Testmethod中獲得值,所以我可以在另一種方法中使用它。 – Tester

+2

編輯您的代碼示例,以便它有道理。事實上,你的代碼使你的問題很不明確。 – hatchet

回答

2

MyFirstTest的值傳遞給RunLookupMyString,您應該修改RunLookupMyString方法把要傳遞參數的類型。然後你可以通過調用方法來傳遞它:

[CodedUITest] 
public class ManyTests 
{ 
    [TestMethod] 
    public string MyFirstTest() 
    { 
     string a = "AAA";    
     return RunLookupMyString(a); 
    } 
} 

public static string RunLookupMyString(string a) 
{ 
    string b = a + " [modified by RunLookupMyString]"; 
    return b; 
} 
+0

我可以修改我的答案,所以它更有意義,如果你想。 TestMethods通常不會返回任何內容,並且在您的示例中,您將在返回之前返回Assert,因此沒有任何意義... –

+0

因此,也許我需要將該批完全移除到另一個方法並將其帶入TestMethod。這只是一個字符串。 – Tester

+0

那麼,你在測試什麼?通常情況下,測試方法會對您的程序API執行一些操作,以驗證它是否正常工作。從這個想法開始,你正在測試一個已經寫好的代碼單元。請參閱:https://msdn.microsoft.com/en-us/library/hh694602.aspx –

相關問題