Если вы действительно хотите, вы можете сделать свой собственный, но я бы не стал, потому что у вас гораздо больше функциональности с s///
... вы можете встроить эту функциональность в свою функцию, но зачем воссоздавать то, что уже существует? 112]
#!/usr/bin/perl -w
use strict;
main();
sub main{
my $foo = "blahblahblah";
print '$foo: ' , replace("lah","ar",$foo) , "\n"; #$foo: barbarbar
}
sub replace {
my ($from,$to,$string) = @_;
$string =~s/$from/$to/ig; #case-insensitive/global (all occurrences)
return $string;
}
Это одно из разделений касается принципов MVC. При модульном тестировании метода вы тестируете сам метод независимо от примененных к нему фильтров. (А OnException () и OnActionExecuting () на самом деле просто прославленные фильтры.)
Если вы хотите протестировать эти другие методы независимо, вы можете это сделать. Обычно для этого нужно вызывать фильтры следующим образом:
((IActionFilter)controller).OnActionExecuting(...)
((IExceptionFilter)controller).OnException(...)
Вам нужно будет создать объекты контекста для передачи этим методам. В конце, у вас есть три модульных теста: один для OnActionExecuting (), один для OnException () и один для самого метода, который вы тестируете. Хорошая вещь в этой настройке заключается в том, что после того, как вы один раз протестировали фильтры, вам больше не нужно беспокоиться о них для любых других модульных тестов.
Например, если у вас есть Method1 (), Method2 () и Method3 (), вам не нужно тестировать каждую комбинацию метод + фильтры. Просто создайте пять модульных тестов: OnActionExecuting (), OnException (), Method1 (), Method2 () и Method3 (). Это исключает избыточное тестирование и упрощает отслеживание потенциальных ошибок в вашем коде.
о них больше не нужно беспокоиться для любых других модульных тестов.Например, если у вас есть Method1 (), Method2 () и Method3 (), вам не нужно тестировать каждую комбинацию метода + фильтров . Просто сделайте пять модульных тестов: OnActionExecuting (), OnException (), Method1 (), Method2 () и Method3 (). Это исключает избыточное тестирование и упрощает отслеживание потенциальных ошибок в вашем коде.
о них больше не нужно беспокоиться для любых других модульных тестов.Например, если у вас есть Method1 (), Method2 () и Method3 (), вам не нужно тестировать каждую комбинацию метода + фильтров . Просто сделайте пять модульных тестов: OnActionExecuting (), OnException (), Method1 (), Method2 () и Method3 (). Это исключает избыточное тестирование и упрощает отслеживание потенциальных ошибок в вашем коде.