在单元测试中保持价值

use*_*658 7 c# unit-testing

我有一个问题你们.我有两个单元测试,它们正在调用webservices.一个单元测试返回的值应该用于另一个单元测试方法

namespace TestProject1
{
    public class UnitTest1
    {
        String TID = string.empty;

        public void test1
        {
           //calling webservices and code

           Assert.AreNotEqual(HoID, hID);
           TID = hID;
        }

        public void test2
        {
           //calling webservices and code            
           string HID = TID  // I need the TID value from the Above testcase here

           Assert.AreNotEqual(HID, hID);            
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

如何在一个unittest中存储一个值,并在另一个unittest中使用该值.

Ole*_*ksi 8

通常,您不应该像这样编写测试.您无法确保您的测试以任何特定顺序运行,因此没有很好的方法来执行此操作.

而是使测试独立,但将公共部分重构为它自己的(非测试)方法,您可以将其作为另一个测试的一部分进行调用.

  • 这是最好的路线.更好的方法是注入一个服务接口,该接口返回单元测试的已知可测试值,然后独立测试服务. (2认同)