2017-05-03 15 views
-6

[TestClass]で[TestMethod]の値を "TestMethod"から取得するにはどうすればよいですか?私はそれを自分のクラスでTestMethodから移動しようとしましたが、アプリケーションはテストメソッドで使用されたものではなく、生成された次の番号を取得しました。testmethodからC#でstringの値を取得する方法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 –