http://en.www.prettyobjects.com/TSharp.aspx?sid=Overview
.NETのテスト用言語 T# という言語があります。
T#でテストのコードを単純化できたりするらしい。
C# の Unit Test でこーかいていたことが、
[TestFixture]
public class ProductTest
{
[Test]
public void SetPrice()
{
// Prepare
Product product = new Product( "T#", 50 );
Assert.AreNotEqual( 100, product.Price );
// Execute
product.Price = 100;
// Verify
Assert.AreEqual( 100, product.Price );
}
}
T# という言語で書くと
testclass
{
test
{
Product product = new Product( "T#", 50 );
assert product.Price != 100;
runtest product.Price = 100;
assert product.Price == 100;
}
}
C# で Assert.AreEqual() って書いてたところが、
T# では、 == で記述できる
C#
[TestFixture]
public class ProductTest
{
private Product product;
[SetUp]
public void Setup()
{
product = new Product( "T#", 50 );
}
[Test]
public void SetPrice()
{
product.PropertyChanged += MyPropertyChangedHandler;
eventIsRaised = false;
Assert.AreNotEqual( 100, product.Price );
product.Price = 100;
// Verify
Assert.AreEqual( 100, product.Price );
Assert.IsTrue( eventIsRaised );
product.PropertyChanged -= MyPropertyChangedHandler;
}
private bool eventIsRaised;
private void MyPropertyChangedHandler( object sender,
PropertyChangedEventArgs args )
{
eventIsRaised = true;
}
}
T#
testclass
{
private Product product;
testcontext
{
product = new Product( "T#", 50 );
runtest;
}
test
{
assert product.Price != 100;
runtest product.Price = 100;
assert product.Price == 100;
assert raised product.PropertyChanged; // just one line!
}
}
T# だとイベントが1行で書ける
VBでも、C#でも同じ言語で書けるのはいいとおもいつつ、
テスト用に新しい言語をおぼえるのかー
でも、C#で苦労してテストコードようの書き方をおぼえるのもあれだなー
と、いろいろなやむ今日この頃