所以我主要使用C#,但是我一直在观看Adam Wathan的TDD Laravel课程,以了解世界上的情况。我遇到过一个关于模型工厂的想法,我以前从未在C#中看到过有关材料的想法,我很好奇大家都建议这样做吗?我猜想接口类和Moq有某种组合?能够在单元测试中仅提供我要测试的字段(在下面的示例中,我仅检查日期),并且使事情变得简单且易读,这真是太好了。
这是Laravel中的模型工厂的示例。这样,您就可以为单元测试使用默认的伪造数据,并且只能传递要测试的特定数据,在这种情况下,这是一个以日期为中心的单元测试。
$factory->define(App\Concert::class, function (Faker\Generator $faker) {
return [
'title' => 'Example Band',
'subtitle' => 'with The Fake Openers',
'date' => Carbon::parse('+2 weeks'),
'ticket_price' => 2000,
'venue' => 'The Example Theatre',
'venue_address' => '123 Example Lane',
'city' => 'Fakeville',
'state' => 'ON',
'zip' => '90210',
'additional_information' => 'Some sample additional information.',
];
});
$concert = factory(Concert::class)->create([
'date' => Carbon::parse('2016-12-01 8:00pm'),
]);