我一直试图为我们的FitNesse应用程序实现C#测试。我正在使用最新的FitNesse jar和fitSharp .NET 2.24.0库。
我已经成功地使用了Slim的场景。然而,为了让非技术用户更容易阅读的测试,我对实现DoFixtures
感兴趣,我推测我需要SetUpFixtures
来为测试创建通用的数据条件。
不过,我似乎无法将设置到DoFixture
实例中的数据获取。我看过几个资源(高子的书是其中之一),但似乎没有人孤立地谈论这个概念。将Visual作为调试器附加到测试运行中并没有产生任何洞察力。我真的可以用一个简单的例子来分析和构建。
是否有人愿意分享一个例子,其中包括:
SetUpFixture
类DoFixture
类,它使用来自SetUpFixture的数据发布于 2012-08-01 14:04:03
看来SetUp没有被调用。使用Debugger.Launch()
进行调试
更新:
!|BirdCall|
|birdName|noise|
|duck|quack|
public class SkylarkBunting : fitlibrary.DoFixture
{
public BirdCall BirdCall;
public SkylarkBunting(BirdCall birdCall)
{
BirdCall = birdCall;
}
public string GetCall()
{
return BirdCall.Noise;
}
public string GetName()
{
return BirdCall.BirdName;
}
}
发布于 2012-08-01 13:56:39
我得到了部分答案。
使用这些类:
public class BirdCall : fitlibrary.SetUpFixture
{
public void BirdNameNoise(string birdName, string noise)
{
BirdName = birdName;
Noise = noise;
}
public string BirdName;
public string Noise;
public override string ToString()
{
return string.Format("BirdCall: {0}, {1}", BirdName, Noise);
}
}
public class SkylarkBunting : fitlibrary.DoFixture
{
public BirdCall BirdCall;
public string Call;
public Fixture CryOut()
{
BirdCall = new BirdCall();
Call = BirdCall.Noise;
return BirdCall;
}
public string GetCall()
{
return BirdCall.Noise;
}
public string GetName()
{
return BirdCall.BirdName;
}
}
这个Wiki标记是:
!define TEST_RUNNER {C:\temp\fitsharp\Runner.exe}
!define COMMAND_PATTERN {%m -r fitnesse.fitserver.FitServer,c:\temp\fitsharp\fit.dll %p}
!path C:\temp\FitNesseIntegration\bin\Debug\FitnesseIntegration.dll
!|import|
|FitnesseIntegration|
!|FitNesseIntegration.Skylark.SkylarkBunting|
!3 Testing getting data from a setup fixture into a do fixture
!|cry out|
|bird name|noise|
|Tweetie|Caw!|
|check|call||
|check|get call||
|check|get name||
|check|bird call||
我得到:
|check|call|null|
|check|get call|Caw!|
|check|get name|Tweetie|
|check|bird call|BirdCall: Tweetie, Caw!|
这很好,我在DoFixture
中有变量,这些变量是通过通过页面执行由FitNesse注入的值来填充的。
不过,我仍然想知道为什么Call返回null
。
https://stackoverflow.com/questions/11763899
复制